Я хочу сделать фильтр в фильтре для получения результата, если он соответствует условию или другому условию.Как обернуть запрос запроса bool в предложение фильтра запроса bool с синтаксисом инициализатора объекта?
В elasticsearch было бы:
POST /my_index/_search
{
"query": {
"bool": {
"filter": [
{
"bool": {
"should": [
{
"match": {
"type1_title": "searched match"
}
},
{
"match": {
"type2_title": "searched match"
}
}
]
}
}
]
}
}
}
Я пытался войти ан boolQuery в другом boolQuery в гнезде:
var shouldForFilter = new List<QueryContainer>();
shouldForFilter.Add(new TermQuery()
{
Field = "type1Title", Value = "searched match",
});
shouldForFilter.Add(new TermQuery()
{
Field = "type2Title", Value = "searched match",
});
var shouldContainer = new List<QueryContainer> {
....
}
...
var innerFilterQuery = new BoolQuery
{
Should = shouldForFilter
};
var searchQuery = new BoolQuery
{
Filter = innerFilterQuery, //does not work
Should = shouldContainer,
Must = mustContainer,
From = 10,
Size = 20
Minscore = 1
};
явно типы не не совпадают.
Вы знаете, как это сделать?
запрос не правильно, вы должны принять тот, который вы приняли здесь: http://stackoverflow.com/questions/42276927/elasticsearch-make-a-should- в-a-filter ;-) – Val
да, спасибо, я исправил его –
Но вам не хватает окружающего bool/filter сейчас :-) – Val