通过REST实现tantivy搜索引擎的超快速、可适应性强的部署。
加入我们的社区以获得支持、更新和更多信息:
🌟 站在巨人的肩膀上
lnx的设计理念是不重复造轮子,它建立在tokio-rs工作窃取运行时、hyperweb框架以及tantivy搜索引擎的原始计算能力之上。
这些组合让lnx能够在同时插入数万个文档时提供毫秒级的索引速度(不再需要等待索引完成!),支持每个索引的事务处理,并且能够像查找哈希表一样处理搜索请求 😲
✨ 特性
尽管lnx相对较新,但得益于其所依赖的生态系统,它提供了广泛的功能。
- 🤓 复杂的查询解析器。
- ❤️ 容错模糊查询。
- ⚡️ 容错快速模糊查询。(预计算的拼写纠正)
- 🔥 相似项查询。
- 按字段排序。
- 快速索引。
- 快速搜索。
- 多种选项用于精细的性能调优。
- 多种可用的存储后端,用于测试和开发。
- 基于权限的授权访问令牌。
在这里,你可以看到lnx在一个包含2700万文档的数据集上进行即时搜索,索引后的大小约为18GB,在我的i7-8700k上运行,使用约3GB的RAM,采用我们的快速模糊系统 有更大的数据集供我们尝试吗?请提出问题!
性能
lnx提供了根据特定用例进行精细调优的能力。你可以自定义异步运行时线程、并发线程池、每个读取器的线程数和写入器线程数,所有这些都可以针对每个索引进行设置。
这使你能够详细控制计算资源的分配。有大型数据集但并发读取量较低?可以增加读取器线程,以换取较低的最大并发数。
以下数据是通过我们的lnx-cli
在小型movies.json
数据集上获得的。我们没有尝试更高的数据量,因为Meilisearch在索引数百万文档时需要非常长的时间,尽管新的Meilisearch引擎在某种程度上改善了这一点。
💔 局限性
尽管lnx提供了广泛的功能,但作为一个年轻的系统,它还不能做到一切。自然地,它有一些限制:
- lnx目前不是分布式的(尚未实现),所以它只能进行垂直扩展。
- 简单但不过于简单,由于其基于模式的特性和广泛的调优选项,lnx无法提供与MeiliSearch相同级别的易用性。不幸的是,更多的调优选项意味着更多的设置。
- 尚未提供指标(metrics)。