ElasticSearch: autocomplete не работает при поиске слов из середины фразы

Используя python elasticsearch-dsl:

class Record(Document):
    tags = Keyword()
    tags_suggest = Completion(preserve_position_increments=False)

    def clean(self):
        self.tags_suggest = {
            "input": self.tags
        }

    class Index:
        name = 'my-index'
        settings = {
            "number_of_shards": 2,
        }

Индексация:

r1 = Record(tags=['my favourite tag', 'my hated tag'])
r2 = Record(tags=['my good tag', 'my bad tag'])

И при попытке найти слово из середины тега:

dsl = Record.search()

dsl = dsl.suggest("auto_complete", "favo", completion={"field": "tags_suggest"})
search_response = dsl.execute()

for option in search_response.suggest.auto_complete[0].options:
    print(option.to_dict())

ничего не возвращает, но возвращает только когда тег идёт с самого начала: "my favo". Как это можно исправить?


Ответы (0 шт):