C++ посоветуйте библиотеку для полнотекстового поиска

Можете посоветовать библиотеку для полнотекстового поиска на C++. Желательно, что бы она имела следующий функционал или его можно было бы добавить самостоятельно:

  1. Что бы можно было искать точную фразу(например: "точна фраза")
  2. Диакритические символы - что бы а и ā, например, считались одной буквой
  3. Учитывала похожие по звучанию буквы(Например яйцо и йайцо)
  4. Нужна поддержка разных операторов поиска:
    • кавычки для поиска точной фразы.
    • Операторы AND, OR, NOT, ?(для замены одного символа), *(для замены нескольких символов)
    • Поиск в пределах N слов в строгом порядке (Например: "a b c"/4) или не в строгом(Например: "a b c"@4)

Стоит ли использовать CLucene, если его очень давно не обновляли? Или лучше сразу смотреть на другие актуальные проекты?


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

Автор решения: Aleksandr

Выбрал LucenePlusPlus. Для 2 и 3 пункта приходится индексировать данные несколько раз, удаляя из них диакритические символы и сохраняя их в разные поля(Сохранять в разные поля, что бы использовать эти функции опционально). Для 1 пункта пришлось вообще не использовать анализатор и так-же сохранять в отдельное поле. Также пришлось доработать стандартный парсер запросов для использования этого поля.

→ Ссылка