2014-09-26 76 views

回答

0

看起来你应该能够使用delete-by-querymatch-all查询.percolator类型的索引。这不起作用,并且是一个长期报告的ES错误(请参阅here,然后here)。

下一个最佳解决方案是针对.percolator类型运行查询,然后遍历结果,逐个删除每个percolator文档。

(编辑,因为最初的回答是错误的。)

1

渗滤器特殊类型,在你的索引名.percolator

在percolator中注册的每个查询都只是这种类型的文档。

知道了这个事实,你可以删除过滤器的所有查询是这样的:

$client = new Elastica\Client(); 
$index = $client->getIndex('myindex'); 
$percolator = $index->getType('.percolator'); 
$percolator->delete(); 
+1

那么你将如何去删除个人查询? – crafter 2015-10-16 07:23:52

2

同时这是固定的。以下命令将删除所有的percoaltor查询:

curl -XDELETE 'localhost:9200/my-index/.percolator/_query' -d '{ 
    "query" : { 
     "match_all" : {} 
    } 
}'