弹性搜索 - 反向匹配查询

时间:2017-05-26 16:47:34

标签: c# elasticsearch core

目前,我针对弹性服务器编写了一个查询,以使用旧的“BatchVersion”删除所有文档。在考虑之后,为了安全起见,我希望删除所有不等于当前“BatchVersion”的记录。这是我目前的代码

            _client.DeleteByQuery<Data.ElasticSearch.Employee>(s => s
            .Index(indexName)
            .Size(1000)
            .Query(q => q.
                  Bool(b => b.
                      MustNot(mn => mn.
                            Match(m => m.Field("BatchVersion").
                                  Query([newVersionId]))))));

运行代码时,不会删除任何记录。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我必须使用Default_Field才能工作。我用kibana来搞清楚。

            _client.DeleteByQuery<Employee>(s => s
            .Index(indexName)
            .Size(1000)
            .Query(q => q.
                Bool(b => b.
                    MustNot(mn => mn.
                        QueryString(qs => qs.DefaultField("batchVersion").Query(newVersionId.ToString()))))));