2016-12-30 71 views
1

例如刪除由謂詞的所有文件我有一個表:如何使用NEST

| Col1  |  Col2 | 
|:-----------|------------:| 
|  1  |   one | 
|  1  |   one | 
|  1  |   one | 
|  1  |   one | 
|  2  |   two | 
|  1  |   one | 

,我要刪除所有文件,其中Col1 == 1,並得到表:

| Col1  |  Col2 | 
|:-----------|------------:| 
|  2  |   two | 

我嘗試一些代碼但它不能正常工作。

ElasticClient.DeleteByQuery<ElasticContent>(del => del 
      .Index(ContentIndexName) 
      .Query(q => q 
      .Bool(b => b 
       .Must(m => m 
       .Term(t => t 
        .Field(f => f.Col1) 
        .Value("1")))))); 

如何通過特定查詢刪除文檔組?

+1

你能定義「不能正常工作」嗎?沒有文件被刪除?你使用哪個版本的ES? – Val

+0

@Val,是的,沒有文件被刪除。我正在使用ES版本5.1.1,NEST 5.0.0。 –

+0

序列化查詢是否如預期的那樣請問查詢中的字段名稱是否與Elasticsearch中的字段名稱匹配?你需要等待查詢刪除完成('.WaitForCompletion()')? –

回答

0

如果您使用的是2.x版本的elasticsearch,則可以使用插件。第一個鏈接就是爲什麼他們從2.x版本中刪除了DeleteByQuery。第二個環節是如何安裝並使用它。

https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/delete-by-query-plugin-reason.html

https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/delete-by-query-usage.html

如果您使用5.x版已經再次添加,應該能夠使用它像正常。我會再次檢查你的版本。