Почему бы вам не фильтровать данные, а просто взять то, что вам нужно?
Фильтрация используется для двоичного результата - в некотором смысле, если вы хотите знать, является ли поле документа school_id
1
или нет. Если вы просто хотите получить результат, есть и другие способы сделать это.
В вашем случае я считаю, что вы просто "перепрыгнули" через must
и bool
, и по этой причине ваш запрос не удался.
Итак, у вас есть 2 варианта, первый, который исправит ваш следующим образом:
GET /_search
{
"query": {
"bool": {
"must": {
"query_string": {
"default_field": "keywords",
"query": "title"
}
},
"filter": {
"bool": {
"must": [
{
"term": {
"school_id": "1"
}
}
]
}
}
}
}
}
ИЛИ если вы хотите получить оценку вашего результата, вы можете использовать это:
GET /_search
{
"query": {
"bool": {
"must": [
{
"query_string": {
"default_field": "keywords",
"query": "title"
}
},
{
"match": {
"school_id": {
"query": "1"
}
}
}
]
}
}
}