(с использованием ES 6.7)
У меня есть индекс и я хочу поддерживать функцию поиска по мере ввода. Для этого я хочу попробовать подсказку завершения, но у меня возникают проблемы с переиндексацией, чтобы изменить старый индекс сопоставлений.
Вот старые сопоставления индексов
{
"old-index": {
"mappings": {
"doc": {
"properties": {
"content": {
"type": "text"
},
"project": {
"type": "keyword"
},
"title": {
"type": "text"
},
"version": {
"type": "keyword"
}
}
}
}
}
}
Вот новые сопоставления тестовых индексов
PUT test-completion
{
"mappings": {
"doc": {
"properties": {
"content": {
"type": "text",
"fields": {
"autocomplete": {
"type": "completion",
"contexts": [
{
"name": "project",
"type": "category",
"path": "project"
},
{
"name": "version",
"type": "category",
"path": "version"
}
]
}
}
},
"title": {
"type": "text"
},
"project": {
"type": "keyword"
},
"version": {
"type": "keyword"
}
}
}
}
}
Вот запрос переиндексации
POST _reindex
{
"source": {
"index": "old-index"
},
"dest": {
"index": "test-completion"
}
}
А вот запрос, который не дает результатов
POST test-completion/_search
{
"suggest": {
"autocompletion_suggest": {
"prefix": "part of documentation",
"completion": {
"field": "content.autocomplete",
"fuzzy": {
"fuzziness": "AUTO"
},
"contexts": {
"project": "xyz-project",
"version": "abc-version"
}
}
}
}
}
Если префикс установлен на a
или b
, он возвращает результаты вне контекста.
Где я делаю не так?
https://discuss.elastic.co/t/problem-with-completion-suggester/181695