У меня есть несколько индексов Elasticsearch, отображения которых мне неизвестны во время поиска.Я использую следующее, чтобы выполнить И для поиска слов «lorem» и «ipsum»:
GET /_search
{
"query": {
"query_string" : {
"query" : "lorem AND ipsum"
}
}
}
Приятно, что поиск выполняется по всем полям в индексах.Теперь у некоторых индексов есть поле с названием «title», и я хочу повысить их, чтобы ранжировать их как более релевантные.Но только если они существуют, конечно.Я попытался поиграться с параметрами предложения «query_string», но единственный способ увеличить поле «title» - это использовать следующий запрос:
GET /_search
{
"query": {
"query_string" : {
"fields": ["title^2"],
"query" : "lorem AND ipsum"
}
}
}
Этозаставляет предложение «query_string» искать только поле «title» и ни одно из других полей - и помните, я не знаю, каковы эти другие поля.Использование подстановочного знака в параметре «default_field» вызовет исключение, только если оно используется вместе с параметром «fields».
Поэтому в основном я хочу сказать Elasticsearch:
Поиск"lorem" и "ipsum" и оцените результат выше, если вы найдете их в поле с названием "title"
Как бы я пошел к достижению чего-то подобного?