1
我对Elasticsearch很新颖,所以如果这是一个明显的问题,请致歉!Elasticsearch(PHP)多范围过滤器问题
我正在使用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]]
如果我删除和过滤,只是针对其中一个日期,执行范围过滤器,那么它完美的作品,我只是无法得到它与工作和过滤
在此先感谢您的帮助!
这是非常有益的,谢谢。我不得不用'ID'替换我的属性,但是使用了filters数组。非常感谢! – alexdover
很高兴知道它适合你:)你可以使用'visible_to'和'visible_from'以及它将工作。在我的例子中'ID'是一个字段名称。 – Roopendra