ElasticSearch .NET DeleteByQueryAsync on Elastic.Clients.Elasticsearch 8.9.1

7hiiyaii  于 2023-10-17  发布在  ElasticSearch
关注(0)|答案(1)|浏览(107)

我正在将我的.NET项目从NEST 6.8.8更新到Elastic.Clients.Elasticsearch 8.9.1
我有一个方法,应该只是从索引中删除的文件是比给定的日期旧。在NEST版本上可以工作,但在Elastic.Clients.ElasticSearch上不行
在NEST版本上,此代码确实有效

var result = await _client.DeleteByQueryAsync<object>( d => d
            .Index(index)
            .Query(q => q.DateRange(r => r
                .Field(field)
                .LessThanOrEquals(date)
            )));

但在Elastic.Client.ElasticSearch中,这会导致“无法推断委托类型”错误。
我有一个使用SearchAsync方法的方法,类似的语法也可以使用。
我试图找到如何使用DeleteByQuery与Elastic.Clients.ElasticSearch的例子,但没有找到任何。
谢谢你的帮助!

jv4diomz

jv4diomz1#

我的同事找到了正确的格式

DeleteByQueryResponse result = await _client.DeleteByQueryAsync<object>(index,
            d => d
                .Query(q => q
                    .Range(r => r
                        .DateRange(dr => dr
                            .Field(field)
                            .Lt(date)))));

相关问题