2014-09-26 59 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" : {} 
    } 
}' 
相關問題