为什么 QueryContainer 不从 Descriptor NESt C# 更新

Why QueryContainer is not updating from a Descriptor NESt C#

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

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

最后我在下面的 BoolQueryDescriptor

中使用了这个 QueryContainerDescriptor
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