2016-12-30 70 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版已经再次添加,应该能够使用它像正常。我会再次检查你的版本。