FlexSearch一个快速零依赖的全文搜索库

导读 NextApps最近发布了Flex Search,这是一个全文、零依赖的Java脚本搜索库,用于Web浏览器和Node js。 Flex Search力求通过其评分算法成为Java脚本开发人员可用的最快的搜索库。 Fl

NextApps最近发布了Flex Search,这是一个全文、零依赖的Java脚本搜索库,用于Web浏览器和Node.js。 Flex Search力求通过其评分算法成为Java脚本开发人员可用的最快的搜索库。 Flex Search还为开发人员提供内存优化选项。

Flex Search将其搜索与其他8个搜索库进行了对比,其中包括Wade、Fuse和Lunr。 在这个基准的快速预置下,Flex搜索在给定的时间内执行了比Wade更多300倍的搜索操作,Wade是下一个最快的搜索库。 这一基准是基于《格列佛游记》一书。 基准结果取决于运行的条件(例如。 机器规格、操作系统和可用内存)。

Flex搜索将其速度差异归因于上下文搜索,这是由Flex搜索的主要贡献者ThomasWilkerling创建的评分算法。 上下文搜索的基本思想是在有限的上下文中计算相关性,其深度可以定制,而不是计算整个结果集的相关性。 因此,Flex Search管理一个上下文索引,该索引由内存中预先存储的字典作为其基础。 因此,上下文搜索获得的速度以牺牲内存占用为代价,内存占用与上下文的配置深度一起增长。

Flex搜索可以广泛定制。 配置文件选项可以设置为优化搜索速度(快速)或内存消耗(存储器)。 其他选项允许配置上下文深度、相关性阈值、单词标记化、词干、编码、缓存或启用Web工作人员。 通过精心配置选项,开发人员可以优化内存消耗搜索。 Flex Search根据七个可选库对内存优化搜索进行了基准测试,显示Flex Search的内存优化搜索在本测试下显示了这些选项中内存消耗最低的情况。

Flex搜索可用于Web浏览器和Node.js。 在对可搜索内容执行搜索之前,开发人员必须创建索引,并将该索引填充到可搜索内容(字符串或文档)中。 然后,开发人员可以使用填充索引搜索内容。 下面的示例显示了一个基本的速度优化搜索:

对于搜索少量的简单文本数据(就像小网店的产品数据),开发人员可以使用字符串匹配,而不需要求助于全文搜索库。

典型的基本全文搜索功能包括:.

高级全文搜索功能包括:.

大多数基准的全文搜索库都提供上述搜索基本功能。 Flex Search还提供了高级功能,如建议、部分匹配、语音匹配、分页和搜索表达式。 但是,Flex搜索不提供同义词搜索。

Flex搜索是Apache2.0许可证下可用的开源软件。 欢迎通过Flex搜索Git集线器项目提供捐款。