elasticsearch - 使用查询 dsl for Nest 时的类型转换问题

标签 elasticsearch nest

var products =
                this.productClient.Search<ProductSummaryModel>(s => s.From(startIndex).Size(pageSize).Query(q =>
                    {
                        QueryDescriptor<ProductSummaryModel> query = null;
                        if (productDetails.IsVisible.HasValue)
                        {
                            var productStatus = productDetails.IsVisible.Value
                                                    ? Constants.ProductStatus.Visible
                                                    : Constants.ProductStatus.Active;
                            query &= query.Term(p => p.Status, productStatus.ToString());
                        }
                        else
                        {
                            query &= !q.Term(p => p.Status, Constants.ProductStatus.Deleted.ToString());
                        }

                        return query;
                    }));

我收到以下错误。

无法将类型“Nest.BaseQuery”隐式转换为“Nest.QueryDescriptor”。存在显式转换(您是否缺少强制转换?)

无法将类型“Nest.BaseQuery”隐式转换为“Nest.QueryDescriptor”。存在显式转换(您是否缺少强制转换?)

无法将 lambda 表达式转换为“Nest.SearchDescriptor”类型,因为它不是委托(delegate)类型

无法将 lambda 表达式转换为“Nest.BaseQuery”类型,因为它不是委托(delegate)类型

我在这里做错了什么?

最佳答案

更改此行:

QueryDescriptor<ProductSummaryModel> query = null;

BaseQuery query = null;

这里的文档明显错误,我们会尽快更新!

关于elasticsearch - 使用查询 dsl for Nest 时的类型转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16681311/

相关文章:

elasticsearch - 使用ElasticSearch存储数据而无需编制索引或进行分析(NEST客户端)

elasticsearch - MultiMatch的动态字段列表-Nest

c# - 使用Nest DSL语法用多个术语过滤的ElasticSearch嵌套查询无法按预期工作

php - 如何在 Elasticsearch 中获取搜索历史记录?

elasticsearch - Elasticsearch DSL查询到.Net NEST

spring-boot - Elasticsearch + Spring Boot:使用@ InnerField/@ MultiField从方法名称查询属性的创建

json - Elasticsearch "More Like This"API 与 more_like_this 查询

elasticsearch - Kibana在 “Discover”选项卡中没有显示任何结果

elasticsearch - 使用轮胎的模块的映射和设置

solr - 按词组搜索最常用的词组