Я использую ElasticSearch v6.4.2 и пытаюсь построить запрос следующим образом:
query
|___bool
|___must
| |__multimatch
|___fiter
|___bool
|___must
|___mustNot
|___should
| |___bool
| |___must
| |___must
| |___must
| |___bool
| |___should
| |___should
|___should
|___bool
|___must
|___must
|___bool
|___should
|___should
Я строю запрос выше с помощью следующего кода:
var searchQuery = new SearchRequest
{
Query = AddMultiMatchQuery("search")
&&
+
(
AddTermQuery("documentLevel", documentLevel) &&
!AddTermQuery("moduleNumber", 4) &&
((
AddTermQuery("coverDateStartSpecified", true)
&&
AddTermQuery("coverDateEndSpecified", true)
&&
(
AddNumericRangeQuery("coverDateStartYear", 1946, 1975)
||
AddNumericRangeQuery("coverDateEndYear", 1946, 1975)
)
)
||
(
AddNumericRangeQuery("coverDateYear", 1946, 1975)
&&
(
AddTermQuery("coverDateStartSpecified", false)
||
AddTermQuery("coverDateEndSpecified", false)
)
)
)
)
};
где функциям нравится название функций, предлагаемых.
Но когда я строю вышеуказанный запрос с кодом, результат будет таким:
query
|___bool
|___must
| |__multimatch
|___fiter
|___bool
|___must
| |__bool
| |___must
| |___must_not
|___must
|___bool
|___should
| |___bool
| |___must
| | |___bool
| | |___must
| | |___must
| |___must
| |___bool
| |___should
| |___should
|___should
|___bool
|___must
|___must
|___bool
|___should
|___should
Я не видел нигде, где есть были примеры построения запросов с этими многочисленными фильтрами https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/bool-queries.html. Что я делаю неправильно? Пожалуйста помоги. Заранее спасибо !!!!