SkillAgentSearch skills...

Flexsearch

Next-generation full-text search library for Browser and Node.js

Install / Use

/learn @nextapps-de/Flexsearch

README

<!-- FlexSearch v0.8: [Overview and Migration Guide](doc/0.8.0.md) -->

Getting instant help by the DeepWiki AI assistant:

<img src="https://devin.ai/assets/deepwiki-badge.png" alt="Ask DeepWiki.com" height="20"/>

<h2></h2> <h1> <img src="doc/flexsearch-logo-glass-animated.svg" style="width: 580px; max-width: 100%" alt="FlexSearch.js: Next-Generation full-text search library for Browser and Node.js"> <p></p> </h1> <h3>Next-Generation full-text search library for Browser and Node.js</h3>

<a target="_blank" href="https://www.npmjs.com/package/flexsearch"><img src="https://img.shields.io/npm/v/flexsearch.svg"></a> <a target="_blank" href="https://github.com/nextapps-de/flexsearch/actions"><img src="https://img.shields.io/badge/build-passing-brightgreen"></a> <img src="https://img.shields.io/badge/coverage-84%25-yellow"> <img src="https://img.shields.io/badge/typed-75%25-yellow"><!--<a target="_blank" href="https://github.com/nextapps-de/flexsearch/issues"><img src="https://img.shields.io/github/issues/nextapps-de/flexsearch.svg"></a>--> <a target="_blank" href="https://github.com/nextapps-de/flexsearch/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/flexsearch.svg"></a>

Basic Start  •  API Reference  •  Encoder  •  Document Search  •  Persistent Indexes  •  Using Worker  •  Tag Search  •  Highlighting  •  Resolver  •  Changelog

Please Support this Project

FlexSearch has been helping developers around the world build powerful, efficient search functionalities for years. Maintaining and improving the library requires significant time and resources. If you’ve found this project valuable and you're interested in supporting the project, please consider donating. Thanks a lot for your continued support!

<a href="https://opencollective.com/flexsearch/donate" target="_blank" style="margin-right: 10px"><img src="doc/opencollective.png" height="32" alt="Donate using Open Collective"></a> <a href="https://github.com/sponsors/ts-thomas/" target="_blank" style="margin-right: 10px"><img src="doc/github-sponsors.png" height="32" alt="Donate using Github Sponsors"></a> <a href="https://liberapay.com/ts-thomas/donate" target="_blank" style="margin-right: 10px"><img src="doc/liberapay.svg" height="32" alt="Donate using Liberapay"></a> <a href="https://www.patreon.com/user?u=96245532" target="_blank" style="margin-right: 10px"><img src="doc/patron.png" height="32" alt="Donate using Patreon"></a> <a href="https://www.paypal.com/donate/?hosted_button_id=GEVR88FC9BWRW" target="_blank"><img src="doc/paypal.png" height="32" alt="Donate using PayPal"></a>

FlexSearch Sponsors

<a href="https://antithesis.com" target="_blank" style="display: inline-block"> <center> <img src="doc/antithesis_logo.svg" width="200" alt="Donate using Open Collective"><br> Antithesis Operations LLC </center> </a> <h1></h1>

FlexSearch performs queries up to 1,000,000 times faster <a href="https://nextapps-de.github.io/flexsearch/" target="_blank">compared to other libraries</a> by also providing <a href="https://nextapps-de.github.io/flexsearch/match.html" target="_blank">powerful search capabilities</a> like multi-field search (document search), phonetic transformations, partial matching, tag-search, result highlighting or suggestions.

Bigger workloads are scalable through workers to perform any updates or queries to the index in parallel through dedicated balanced threads.

The latest generation v0.8 introduce Persistent Indexes, well optimized for scaling of large datasets and running in parallel. All available features was natively ported right into the database engine of your choice.

FlexSearch was nominated by the GitNation for the "Best Technology of the Year".

Supported Platforms:

  • Browser
  • Node.js

Supported Database:

Supported Charsets:

  • Latin
  • Chinese, Korean, Japanese (CJK)
  • Hindi
  • Arabic
  • Cyrillic
  • Greek and Coptic
  • Hebrew

Common Code Examples:

Demos:

  • <a href="https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html" target="_blank">Auto-Complete</a>

<a name="benchmark"></a> Benchmarks:

  • <a href="https://nextapps-de.github.io/flexsearch/" target="_blank">Performance Benchmark</a>
  • <a href="https://nextapps-de.github.io/flexsearch/match.html" target="_blank">Matching Benchmark</a>
<details> <summary>Latest Benchmark Results</summary> <br> The benchmark was measured in terms per seconds, higher values are better (except the test "Memory"). The memory value refers to the amount of memory which was additionally allocated during search.<br> <table> <tr></tr> <tr> <th>Library</th> <th>Memory</th> <th>Query: Single</th> <th>Query: Multi</th> <th>Query: Large</th> <th>Query: Not Found</th> </tr> <tr> <td>flexsearch</td> <td align="right">16</td> <td align="right">50955718</td> <td align="right">11912730</td> <td align="right">13981110</td> <td align="right">51706499</td> </tr> <tr></tr> <tr> <td>jsii</td> <td align="right">2188</td> <td align="right">13847</td> <td align="right">949559</td> <td align="right">1635959</td> <td align="right">3730307</td> </tr> <tr></tr> <tr> <td>wade</td> <td align="right">980</td> <td align="right">60473</td> <td align="right">443214</td> <td align="right">419152</td> <td align="right">1239372</td> </tr> <tr></tr> <tr> <td>js-search</td> <td align="right">237</td> <td align="right">22982</td> <td align="right">383775</td> <td align="right">426609</td> <td align="right">994803</td> </tr> <tr></tr> <tr> <td>minisearch</td> <td align="right">4777</td> <td align="right">30589</td> <td align="right">191657</td> <td align="right">5849</td> <td align="right">304233</td> </tr> <tr></tr> <tr> <td>orama</td> <td align="right">5355</td> <td align="right">29445</td> <td align="right">170231</td> <td align="right">4454</td> <td align="right">225491</td> </tr> <tr></tr> <tr> <td>elasticlunr</td> <td align="right">3073</td> <td align="right">14326</td> <td align="right">48558</td> <td align="right">101206</td> <td align="right">95840</td> </tr> <tr></tr> <tr> <td>lunr</td> <td align="right">2443</td> <td align="right">11527</td> <td align="right">51476</td> <td align="right">88858</td> <td align="right">103386</td> </tr> <tr></tr> <tr> <td>ufuzzy</td> <td align="right">13754</td> <td align="right">2799</td> <td align="right">7788</td> <td align="right">58544</td> <td align="right">9557</td> </tr> <tr></tr> <tr> <td>bm25</td> <td align="right">33963</td> <td align="right">3903</td> <td align="right">4777</td> <td align="right">12657</td> <td align="right">12471</td> </tr> <tr></tr> <tr> <td>fuzzysearch</td> <td align="right">300147</td> <td align="right">148</td> <td align="right">229</td> <td align="right">455</td> <td align="right">276</td> </tr> <tr></tr> <tr> <td>fuse</td> <td align="right">247107</td> <td align="right">422</td> <td align="right">321</td> <td align="right">337</td> <td align="right">329</td> </tr> </table>

Run Comparison: <a href="https://nextapps-de.github.io/flexsearch/" target="_blank">Performance Benchmark "Gulliver's Travels"</a>

</details>

Extern Projects & Plugins:

  • React: https://github.com/angeloashmore/react-use-flexsearch
  • Vue: https://github.com/Noction/vue-use-flexsearch
  • Gatsby: https://www.gatsbyjs.org/packages/gatsby-plugin-flexsearch/
  • Nikola: https://plugins.getnikola.com/v8/flexsearch_plugin/

Table of contents

[!TIP] Understanding those 3 elementary things about FlexSearch will improve your results significantly: Tokenizer, Encoder and Suggestions

Related Skills

View on GitHub
GitHub Stars13.6k
CategoryDevelopment
Updated14m ago
Forks520

Languages

JavaScript

Security Score

100/100

Audited on Apr 3, 2026

No findings