Об этом проекте

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/, из-за флагов условной компиляции.