У меня проблема с пониманием работы параметра boost в Elasticsearch 6.
У меня есть индекс с четырьмя полями: id, title, content, client. Все поля имеют тип «текст».
Следующим запросом я пытаюсь придать полю заголовка больший вес:
{
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "europe",
"analyzer": "standard",
"default_operator": "AND",
"fields": [
"id", "title^2", "content"
]
}
},
{
"term": {
"client": {
"value": "test",
"boost": 1
}
}
}
]
}
},
"size": 10,
"from": 0,
"sort": [
{
"_score": {
"order": "desc"
}
}
]
}
Теперь я ожидал бы, что я получу результаты поиска, где первые попадания - это только записи, которые содержат поисковый термин в заголовке, но не обязательно в содержании. Однако я получаю только совпадения, содержащие искомый термин как в названии, так и в содержании, т. Е. Сопоставление нескольких полей.
Могу ли я как-то повлиять на это, возможно, увеличив значение повышения или переформулировав запрос? Я также прочитал кое-что о запросе dismax, но я не знаю, полезно ли это для моих целей?