About this project

FlexSearch is a full-text search library designed for use in browsers and Node.js. It is distributed via npm and also offers prebuilt bundles (light, compact, bundle) plus ES module builds, with debug variants and CDN links. Core capabilities described in the README include: - Multi-field document search, with a document descriptor and dedicated document search options. - Tag search and multi-tag search. - Result highlighting, including boundary and ellipsis options. - Phonetic (fuzzy) search. - Partial matching via configurable tokenizers. - Suggestions and context search. - A resolver for complex queries with boolean operations (and, or, xor, not), boost, limit and offset. - Auto-balanced caching by popularity or last query. - Export/import of indexes, including fast-boot serialization for server-side rendering. - Worker indexes for parallel updates and queries through dedicated threads. - Async non-blocking runtime balancing. - Custom score functions and custom builds. Persistence options are documented for IndexedDB in the browser and for Redis, SQLite, Postgres, MongoDB and Clickhouse. The default storage is in-memory. Character set support listed: Latin, Chinese/Korean/Japanese (CJK), Hindi, Arabic, Cyrillic, Greek and Coptic, and Hebrew. Encoder documentation covers encoder options, universal charset collection, Latin charset presets, language-specific presets and custom encoders. The README links to external integrations for React, Vue, Gatsby and Nikola, and to demos such as auto-complete. It also references performance and matching benchmarks and includes a benchmark results table comparing several JavaScript search libraries; these figures are the project's own published measurements and should be treated as such. The project states it was nominated by GitNation for "Best Technology of the Year" and provides donation links through Open Collective, GitHub Sponsors, Liberapay, Patreon and PayPal. A migration guide for v0.8 is referenced, and the README notes that the /dist/ folder should be used rather than /src/ because of conditional compilation flags.