Используйте предложитель фраз elasticsearch с выводом

#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