Использование помощника по завершению Elasticsearch У меня проблемы с возвратом предложений ввода нескольких слов, соответствующих запросу одного слова.Elicationsearch завершает поиск с помощью ввода нескольких слов
Пример структуры:
PUT /test_index/
{
"mappings": {
"item": {
"properties": {
"test_suggest": {
"type": "completion",
"index_analyzer": "whitespace",
"search_analyzer": "whitespace",
"payloads": false
}
}
}
}
}
PUT /test_index/item/1
{
"test_suggest": {
"input": [
"cat dog",
"elephant"
]
}
}
Работа запроса:
POST /test_index/_suggest
{
"test_suggest":{
"text":"cat",
"completion": {
"field" : "test_suggest"
}
}
}
с результатом
{
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"test_suggest": [
{
"text": "cat",
"offset": 0,
"length": 3,
"options": [
{
"text": "cat dog",
"score": 1
}
]
}
]
}
В противном случае запроса:
POST /test_index/_suggest
{
"test_suggest":{
"text":"dog",
"completion": {
"field" : "test_suggest"
}
}
}
с результатом
{
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"test_suggest": [
{
"text": "dog",
"offset": 0,
"length": 3,
"options": []
}
]
}
Я бы ожидать такой же результат, что и рабочий запрос, соответствующий «кошки собаки». Любые предложения, в чем проблема, и как заставить работать сбойным запросом? Я получаю те же результаты при использовании стандартного анализатора вместо анализатора пробелов. Я хотел бы использовать несколько слов на входную строку, как показано в приведенном выше примере.
Поиск + запрос не возвращает текст и в моем случае текст может быть что-нибудь между тремя полями, так как я мог показать точный текст автозаполнения. –