Об этом проекте
FlexSearch — это библиотека полнотекстового поиска, предназначенная для использования в браузерах и Node.js. Она распространяется через npm, а также предлагает готовые сборки (light, compact, bundle) и ES-модули, с отладочными вариантами и ссылками на CDN.
Основные возможности, описанные в README, включают:
- Многопольный поиск по документам с дескриптором документа и специальными опциями поиска.
- Поиск по тегам и множественный поиск по тегам.
- Подсветку результатов, включая опции границ и многоточий.
- Фонетический (нечёткий) поиск.
- Частичное совпадение с помощью настраиваемых токенизаторов.
- Подсказки и контекстный поиск.
- Резолвер для сложных запросов с булевыми операциями (and, or, xor, not), бустом, лимитом и смещением.
- Автосбалансированное кэширование по популярности или последнему запросу.
- Экспорт/импорт индексов, включая сериализацию для быстрой загрузки при серверном рендеринге.
- Воркер-индексы для параллельных обновлений и запросов через выделенные потоки.
- Асинхронную неблокирующую балансировку времени выполнения.
- Пользовательские функции оценки и пользовательские сборки.
Варианты постоянного хранения документированы для IndexedDB в браузере и для Redis, SQLite, Postgres, MongoDB и Clickhouse. По умолчанию хранилище — в памяти.
Поддерживаемые наборы символов: латиница, китайский/корейский/японский (CJK), хинди, арабский, кириллица, греческий и коптский, иврит. Документация по кодировщикам охватывает опции кодировщиков, универсальный набор символов, пресеты латиницы, языковые пресеты и пользовательские кодировщики.
В README есть ссылки на внешние интеграции для React, Vue, Gatsby и Nikola, а также на демо, например автодополнение. Также упоминаются бенчмарки производительности и сопоставления, включая таблицу результатов сравнения нескольких JavaScript-библиотек поиска; эти цифры являются собственными опубликованными измерениями проекта, и к ним следует относиться соответственно.
Проект заявляет, что был номинирован GitNation на «Лучшую технологию года», и предоставляет ссылки для пожертвований через Open Collective, GitHub Sponsors, Liberapay, Patreon и PayPal. Упоминается руководство по миграции для версии 0.8, а в README отмечается, что следует использовать папку /dist/, а не /src/, из-за флагов условной компиляции.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.