Elasticsearch NEST - 动态添加一个SHOULD术语

时间:2018-05-02 11:23:44

标签: c# .net elasticsearch nest

我正在使用运算符重载语法动态构建一系列过滤器。

MainQuery &= QueryContainer1;
MainQuery &= QueryContainer2;
etc.

有些过滤器是可选的,所以我希望它们只在找到时才能提升结果。我基本上想要这个:

bool
|___must
|   |___term
|   |___term
|
|___filter
|   |___term
|
|___should
   |___term
   |___term

似乎没有办法通过重载语法来实现这一点。它实际上在文档中说这不会产生上述结果,因为它期望至少有一个“应该条款”匹配。

MustTerm1 && Filter1 && (ShouldTerm1 || ShouldTerm2) 

文档:

https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/bool-queries.html#_combining_queries_with_or_should_clauses

我真正想做的是:

MustTerm1 && Filter1 && (optionally)ShouldTerm1 && (optionally)ShouldTerm2

或者如果在这种语法中无法完成,还有其他方法可以在我构建它时将“应该”过滤器添加到我的Querycontainer中吗?

0 个答案:

没有答案