Несмотря на то, что я нахожу этот подход в целом странным (я думаю, что ваша проблема должна решаться другим способом, например, несколькими этапами поиска), я думаю, что вы могли бы решить ее сейчас следующим образом.
Много совпадений запросов имеют прекрасную возможность обеспечить повышение для ваших полей.Например,
"query": {
"multi_match" : {
"query" : "this is a test",
"fields" : [ "field_a^1000", "field_b^10", "field_c" ]
}
}
Знак ^
- это знак усиления, который будет умножать количество совпадений в этом поле на значение - 1000 в случае field_a
Однако я бы хотелРекомендуется избегать такого поведения в целом, так как:
- Эти значения усиления трудно контролировать
В некоторых случаях это может вести себя не так, как ожидалось (представьте, что вынабрать 1000 баллов за field_b
)
Если у вас будет много попаданий, сама идея совпадения с field_c
устарела, так как ни один пользователь не прокручивает так далекопрочь в результатах поиска