Elasticsearch NEST - ДОЛЖНО динамически добавлять термин - PullRequest
0 голосов
/ 02 мая 2018

Я строю серию фильтров динамически, используя синтаксис перегрузки операторов.

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 во время его создания?

...