Как настроить поиск /lucene, используя преобразователь конечного состояния, чтобы ускорить поиск по типу / подсказчику
Я пытаюсь построить поиск с опережением по следующим данным.
ID DATA STRING id_1 "это строка номер один" id_2 "это строка номер два"
При запросе этих данных я приведу строку вроде:
"строка первая" -> вывод: id_1 (идентификатор совпадающей строки) "две строки" -> вывод: id_2 "это номер строки" -> вывод id_1 id_2 (несколько результатов)
Я пытался с инвертированным индексом, с n-граммами (префиксами), для каждого токена в строке данных. Но для большого набора данных индексирование n-грамм является медленным (запросы достаточно хороши). Теперь у меня возникло некоторое представление о том, что в lucene есть классы Suggester, которые очень быстры в поиске по типу и используют FST (Finite State Transducer) для реализации быстрого поиска по префиксу.
Как можно использовать FST в моем сценарии, чтобы ускорить поиск по типу?