Как указано здесь поле в Elasticsearch, определенное как тип «завершение» вместе с определенным анализатором + токенизатором, сначала разделяется в соответствии с базовой логикой этих частей, а затем снова «сшивается» вместе,Однако я очень недоволен этим поведением.
Это моя текущая настройка сопоставления (отрывок):
"mappings": {
"movie": {
"properties": {
"title": {
"analyzer": "standard",
"fields": {
"autocomplete": {
"type": "completion"
"analyzer": "whitespace",
}
},
"type": "string"
}
}
}
}
Давайте возьмем фильм с названием Harry Potter
, например:
Когда я ввожу префикс Har
, я получаю предложение Harry Potter
.Когда я вместо этого ввожу Pot
, я вообще ничего не получаю, потому что отдельные токены Harry
и Potter
были сшиты вместе в Harry Potter
сразу после анализа / токенизации.
Теперь мне нужно следующее поведение: когда я введу Pot
, я бы хотел, чтобы средство предложения завершения вернуло Potter
.Не Harry Potter
, а просто Potter
.Это как-то возможно?Внимание: мне даже не нужна ссылка на документ, который создал предложение.Поэтому, если есть возможность выбросить все сгенерированные токены в банк, а затем получить оттуда предложения, это было бы здорово (из-за некоторых других вещей, которые я должен сделать).