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

时间:2016-02-29 12:23:20

标签: elasticsearch nest

您好我的NEST查询中有以下描述符...

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

最后我在下面的 BoolQueryDescriptor

中使用了这个QueryContainerDescriptor
boolDescriptor.Must(q => queryContainer);

问题是,虽然我可以在dateRangeDescriptormatchPhraseDescriptor中看到值,但queryContainer不能看到这些值。

不确定这里出了什么问题。

1 个答案:

答案 0 :(得分:1)

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