【发布时间】:2014-02-18 02:47:28
【问题描述】:
我正在尝试从 Elasticsearch 索引中删除字段 time_crawl_started 与特定值不匹配的所有项目。我将 match_all 查询与 NOT 过滤器结合使用。
这是我目前得到的:
$client = new Elasticsearch\Client();
$params = Array(
'index' => ...,
'type' => ...
);
$params['body']['query']['filtered']['query']['match_all'] = Array();
$params['body']['query']['filtered']['filter']['not']['term']['time_crawl_started'] = $someDate;
$client->deleteByQuery($params);
问题在于,这会删除所有项目,甚至那些将 time_crawl_started 设置为 $someDate 的项目,这只是一个日期时间,例如“2014-02-17 19:13:31”。
我应该如何更改它以仅删除日期不正确的项目?
【问题讨论】:
-
尝试使用带有
must_not子句的布尔查询,而不是使用not过滤器 -
没有帮助...我还在尝试各种组合。
标签: elasticsearch