elasticsearch - 为什么QueryContainer没有从描述符NESt C#更新

标签 elasticsearch nest

嗨,我的NEST查询中有以下描述符...

queryContainer.DateRange(b => dateRangeDescriptor);
queryContainer.MatchPhrase(b => matchPhraseDescriptor);

最后,我在以下中使用此QueryContainerDescriptor BoolQueryDescriptor
boolDescriptor.Must(q => queryContainer);

问题是尽管我可以在dateRangeDescriptormatchPhraseDescriptor中看到值,但在侧面queryContainer中不可用。

不知道这里出了什么问题。

最佳答案

Must具有以下重载(在NEST 2.x中)

public BoolQueryDescriptor<T> Must(
    params Func<QueryContainerDescriptor<T>, QueryContainer>[] queries) 
{ 
    // impl 
}

public BoolQueryDescriptor<T> Must(
    IEnumerable<Func<QueryContainerDescriptor<T>, QueryContainer>> queries)
{
    // impl
}

public BoolQueryDescriptor<T> Must(
    params QueryContainer[] queries)
{
    // impl
}

因此,您需要传递一组查询以应用多个must子句,而不是将它们全部添加到一个QueryContainer中。

关于elasticsearch - 为什么QueryContainer没有从描述符NESt C#更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35699492/

相关文章:

c# - ElasticSearch从指定术语中查找具有不同嵌套列表元素的索引对象

docker - 如何更改 Kibana 的 Docker 镜像的端口号

docker - MacOS 14 上 docker 镜像中的 Elasticsearch vm.max_map_count 错误

javascript - Elasticsearch 中的 Cubism 和指标 (statsd/diamond)

nest - 附件上的此类模糊词在部分单词上不返回任何内容

elasticsearch - 在ElasticSearch中查询和返回子文档/嵌套对象

elasticsearch - Elasticsearch在双引号之外标记化

sql - Elasticsearch 查询过滤器

c# - ElasticSearch Nest。在除另一个时间范围内的时间范围内获取聚合结果

ElasticSearch 嵌套查询