DeleteByQuery使用NEST和ElasticSearch

时间:2014-01-31 08:47:25

标签: c# elasticsearch nest

我在使用NEST的DeleteByQuery方法时遇到了一些困难。

很简单,查询永远不会找到要删除的内容,我无法弄清楚原因。我使用相同的查询来返回记录(使用搜索),一切都按预期工作。

    private void Delete(MyClass someObject)
    {
        var response = elasticClient.DeleteByQuery<MyClass>(q => q                
            .Match(m => m.OnField(f => f.Guid).Equals(someObject.Guid))            
            );
    }

我刚刚开始使用NEST,所以我确定这是一个非常简单的问题而且我只是有点昏暗!

任何帮助/建议非常感谢。

2 个答案:

答案 0 :(得分:4)

.Equals()Object上的.NET方法,用于检查是否相等。

如果您将对Equals()的通话更改为Query(someObject.Guid),则应该有效。

答案 1 :(得分:1)

更新“ NEST”版本=“ 6.4.0”

var response = _client.DeleteByQuery<MyClass>(q => q
            .Query(rq => rq
                .Match(m => m
                .Field(f => f.Guid)
                .Query(guid.ToString())) 
            )
        );