У меня есть следующая структура объекта: номер, наименование, список позиций.
Список позиций это nested тип, количество позиций в объекте может быть от 0 до N.
Наименование и позиции проиндексированы каждой в 2 поля: в поле с анализатором (ru hunspell) и в поле без анализатора, то есть keywords. Это было сделано для того, чтобы можно было искать точное вхождение фраз и слов.
Столкнулись с несколькими проблемами. Например, мы хотим найти объекты в наименовании которых или в позициях которых есть вхождение красн* яблоко. В случае с названием всё просто, а вот с позициями получается проблема. Так как яблоко мы ищем в анализируемом поле, а префикс красн ищем в keyword поле, то сопоставить в каких именно позициях находятся вхождения невозможно. В итоге мы получаем на выходе объекты, в которых может входить только одно из слов, например, объект с позицией яблоко, что не соответствует задаче.
Прошу подсказать, что мы сделали не так? Поиск по фразе не подходит так как порядок слов может быть в искомом объекте произвольным.