#elasticsearch #scoring #booleanquery
Вопрос:
В Elasticsearch я тестирую следующий запрос:
GET sdata/_search
{
"query": {
"bool": {
"must": [
{ "match": { "f1": "sth" } }
],
"should": [
{ "match": { "f2": "sth" } }
]
}
}
}
Я знаю, что общая оценка полученных документов зависит от количества совпадений, которых они достигли. но можно ли настроить итоговую оценку так, чтобы документы, соответствующие этому should
пункту, могли быть взвешены намного выше, чем документы, соответствующие must
одному? могу ли я добавить сценарий, чтобы определить, как каждое предложение влияет на итоговую оценку?
Заранее спасибо
Ответ №1:
Вы можете использовать boost
параметр вместе с should
предложением
{
"query": {
"bool": {
"must": [
{
"match": {
"f1": "sth"
}
}
],
"should": [
{
"match": {
"f2": {
"query": "sth",
"boost": 10
}
}
}
]
}
}
}