[英]Elasticsearch (PHP) multiple range filters issue
我對Elasticsearch很新,所以如果這是一個顯而易見的問題,請道歉!
我正在使用PHP庫並試圖在索引中進行非常簡單的查詢。 我唯一想做的就是對兩個日期(visible_from和visible_to)執行過濾,我在創建映射時將其設置為日期類型。
我在代碼中構建了一個過濾的查詢,最終看起來像這樣:
array (
'index' => 'site',
'from' => 0,
'size' => 10,
'body' =>
array (
'query' =>
array (
'filtered' =>
array (
'filter' =>
array (
'and' =>
array (
'range' =>
array (
'visible_from' =>
array (
'lt' => '2014-06-09 09:06:47',
),
'visible_to' =>
array (
'gt' => '2014-06-09 09:06:47',
),
),
),
),
'query' =>
array (
'match' =>
array (
'_all' => 'example',
),
),
),
),
),
)
這會導致拋出BadRequest400Exception - 在異常的內容中我可以看到Elasticssearch在說
QueryParsingException[[site] [and] filter does not support [lt]]
如果我刪除AND過濾器並只針對其中一個日期執行范圍過濾器,那么它完美地工作,我只是無法使用AND過濾器
在此先感謝您的幫助!
嘗試下面的查詢,嘗試使用不同於小於和大於日期。
array
(
"query" => array
(
"filtered" => array
(
"query" => array
(
"match" => array(
'_all' => 'example',
),
),
"filter" => array
(
"and" => array
(
"filters" => array
(
"0" => array
(
"range" => array
(
"ID" => array
(
"gt" => '2014-06-09 09:06:47',
),
),
),
"1" => array
(
"range" => array
(
"ID" => array
(
"lt" => '2014-06-09 09:06:47',
),
),
),
),
),
),
),
),
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.