#elasticsearch #stemming #search-suggestion
Вопрос:
Я пытаюсь использовать фразу suggester, как описано в этой документации:
https://www.elastic.co/guide/en/elasticsearch/reference/6.5/search-suggesters-phrase.html
Моя проблема в том, что я получаю предложения с помощью suggest_mode:отсутствует для терминов, которые будут существовать в индексе, когда они будут выведены.
Когда я ищу с помощью предложителя терминов «blaue» то, чего нет в индексе и что было бы связано с «blau», я хотел бы, чтобы у меня не было предложений с suggest_mode:отсутствует.
Если я использую «blaue» с помощью поискового анализатора и поля с выводом, это работает так, как ожидалось, и я не получаю никаких предложений.
Но это может иметь тот побочный эффект, что я получаю ответные предложения от суггестора фраз, которые вытекают из:
{
"default": [
{
"text": "blaue jakke",
"offset": 0,
"length": 11,
"options": [
{
"text": "blau jack",
"highlighted": "blau <em>jack</em>",
"score": 0.0012001323
}
]
}
]
}
«блау джеке» было бы правильно.
Я уже пытался проиндексировать исходную и непустую версии, как это:
"filter": [
"lowercase",
"keyword_repeat",
"de_stemmer",
"unique"
]
Но каким-то образом это приводит к тому же результату, что и без последствий.
Однако, прежде чем я запишу все возможности, которые я уже опробовал, я хотел бы спросить, существует ли какой-либо «стандартный» способ использования стемминга в словосочетании suggestor, потому что я ничего не смог найти об этом в Интернете.
Я также не уверен, правильно ли я понял, как работает суггестор фраз. Существует ли какая-либо процедура для восстановления логики суггестора фраз, чтобы я мог проверить, где возникает проблема?
Я использую эластичный поиск версии 6.5.4