Комментарии 2
можно отметить что индексы люсин " не любят" wildcard запросы (starts, ends, contains). *gram токенайзеры позволяют ускорить эти запросы по принципу "скорость в обмен на память" - токен (слово) разбивается на токены скользящим окном изменяющегося размера, которые указывают на источник (документ).
Слабое место в люсин - поиск по фразам.
В идеале хорошо бы иметь в люсин синтаксическое дерево, но прожорливо по ресурсам, памяти много нужно.
Порядка 10 лет пилил , строгал и вышивал с Люсин от 2.4 до 10 версии. Эластик серч не часто касался, но суть одна - люсин под капотом что у солр, что у эластик что у его амазоновского openseach.
Можно еще делать трюки с вычисляемыми, синтезируемыми полями в люсин (к примеру возвращать возраст вместо хранимой в индексе даты рождения) и всякие lookup поля - возвращение label в нужной локали (языке) из цифрового поля в индексе ( это востребовано часто)
Гибкий поиск в Spring Data Elasticsearch: Превращаем «првт мр» в «Привет, мир!»