Как искать фразы, содержащие неправильные слова, в ElasticSearch?

#elasticsearch #phrase

Вопрос:

Я использую ElasticSearch для поиска фраз, но фразы могут содержать неправильные слова. Некоторые слова в запросе, возможно, потребуется заменить, чтобы они соответствовали фразе в документе. Например, запрос может быть «У меня есть счастливая собака в качестве домашнего животного», в то время как документ содержит «У меня есть кошка в качестве домашнего животного».

Я хотел бы найти документы, в которых фраза запроса нуждается в замене наименьшего количества слов, чтобы соответствовать фразе в документе. Я рассматривал использование запросов span, но у меня сложилось впечатление, что если какое-либо из слов в span не совпадает, запрос завершается неудачно. Я не думаю, что диапазон нечетких терминов будет работать, так как нечеткость работает на уровне символов и плохо подходит для замены целых слов, так как они имеют большие расстояния редактирования.