如何使用NEST通过谓词删除所有文档

时间:2016-12-30 11:56:06

标签: c# elasticsearch 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 个答案:

答案 0 :(得分: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版,则会再次添加,并且应该可以像平常一样使用它。我会再次检查你的版本。