Show HN: Front End Fuzzy and Substring and Prefix Search
4 months ago
- #frontend-library
- #fuzzy-search
- #search-algorithm
- @m31coding/fuzzy-search 是一个前端库,用于通过名称和特征快速准确地进行模糊搜索实体。
- 主要特性包括:速度快(查询时间<10毫秒)、准确性高(后缀数组和n-gram技术)、多语言支持、灵活性强(增删改查操作)、可靠性高(无依赖项)以及通用兼容性(支持前端和Node.js环境)。
- 通过npm安装:`npm install @m31coding/fuzzy-search`,提供多种模块格式(ESM、CommonJS、UMD等)。
- 基础用法包括使用`SearcherFactory`创建搜索器,索引实体,并通过`getMatches`进行查询。
- 支持动态更新(`upsertEntities`和`removeEntities`),并能高效处理大规模数据集。
- 可自定义的标准化处理流程,适用于不同语言和文字系统,默认设置针对拉丁文字优化。
- 高级搜索技术包括:带字符排序的n-gram处理(解决输入顺序错误问题)和对不精确匹配的质量惩罚机制。
- 子串和前缀搜索采用后缀数组结构,并通过质量偏移量优化匹配优先级。
- 配置选项支持针对特定需求调优,例如处理非拉丁文字或大型数据集。
- 开源免费,欢迎通过GitHub提交问题反馈或贡献代码。