У меня есть очень простое отображение, которое выглядит так (я немного упростил пример):
{
"location" : {
"properties": {
"name": { "type": "string", "boost": 2.0, "analyzer": "snowball" },
"description": { "type": "string", "analyzer": "snowball" }
}
}
}
Теперь я индексирую много местоположений s с использованием случайных значений, основанных на реальных английских словах.
Я хотел бы иметь возможность искать местоположения, которые соответствуют любому из заданных ключевых слов либо в поле имени, либо в поле описания (name более важно,отсюда и усиление, которое я ему дал). Я попробовал несколько разных запросов, и они не дали никаких результатов.
{
"fields" : ["name", "description"],
"query" : {
"terms" : {
"name" : ["savage"],
"description" : ["savage"]
},
"from" : 0,
"size" : 500
}
}
Учитывая, что есть места, в описании которых есть слово savaged , он должен дать мне некоторые результаты ( savage является стержнем диких ). Он дает 0 результатов с использованием вышеуказанного запроса. Я использовал curl для запроса ES:
curl -XGET -d @query.json http://localhost:9200/myindex/locations/_search
Если вместо этого я использую строку запроса:
curl -XGET http://localhost:9200/fieldtripfinder/locations/_search?q=description:savage
, я действительно получаю один результат (конечно, теперь он будет искать только поле описания).
В основном я ищу запрос, который будет выполнять поиск типа ИЛИ с использованием нескольких ключевых слов и сравнивать их со значениями как в поле имени, так и в поле описания.