⚠️ 此页面为自动翻译,翻译可能不完美。
image-fallback

Sphinx 3 vs Manticore: 性能基准测试

[更新] 更新的基准测试在 这里 。
最近,期待已久的 Sphinx 3 已经 发布 并在 3.0.2 中 更新 。它具备文档存储功能、A 索引、片段预索引,遗憾的是不再是开源软件(至少在 2018 年 3 月现在是这样)。
这些都是非常不错的功能,但你是否对它们对 Sphinx 3 性能的影响以及与 Manticore 性能的差异感兴趣?我们也是!
为了弄清楚这一点,我们进行了基准测试以测量:
索引时间 Sphinx 3 和 Manticore Search 2.6.2 能 …

保留来自 Manticore Search 的搜索结果集的顺序

在 Manticore 查询和最终结果之间可能会有额外的处理。由于在大多数情况下,兴趣在于按相关性得分排序,因此重要的是不要丢失这种排序。
使用 Manticore Search 和数据库的典型工作流程如下:
执行 Manticore 查询 从结果集中获取文档 ID 列表 使用文档 ID 执行数据库查询以获取输出的最终结果 从数据库中获取相应记录可以通过使用 IN(ids) 谓词在单个查询中完成。
mysql> SELECT * FROM mytable WHERE …

Manticore Search kill-list feature

纯文本索引数据是不可变的,这意味着要刷新数据,我们需要进行完全重建索引。在许多情况下,重建索引可能需要很长时间。为此,使用了 main+delta schema 。
这个概念假设一个大的索引,它在给定时间保存数据的快照,以及一个较小的索引,它保存从快照时间到更近日期的变化(增量)。由于后者较小,因此可以更频繁地重新索引。增量变化可以是新记录、更新的记录或删除的记录。更新或删除的记录引入了一个问题:当引擎在两个索引中搜索时,它不知道主索引中的记录是否不再有效。这导致继续显示实际 …

普通索引复制

Manticore Search(以及 Sphinx)尚不支持普通或 RT 索引的复制(尽管我们正在努力实现这一点,如果您想成为测试者,请通过 [email protected] 联系我们),因此如果您需要在其他地方拥有 Manticore Search / Sphinx 数据的副本,您必须自己实现它。您可能需要它的原因:
可扩展性:您希望在服务器上平衡负载(例如,您可以将一半的 Manticore 查询发送 …

Manticore Search 2.6.2 GA release

我们很高兴地宣布发布 Manticore Search 2.6.2 GA. 可用于 Debian、Ubuntu、Red Hat/CentOS、Windows 和 OSX 的预构建包可以从 这里 下载。有关 Docker 镜像,请查看官方 repository 。
改进 Percolate 查询的性能得到了极大提升,特别是在使用 NOT 运算符和批处理文档时。
根据 dist_threads ,可以使用多个线程来处理 CALL PQ 调用。使用 dist_threads=8 …

Minimal configuration to play with Manticore Search

如果你想开始学习 Manticore Search 的普通索引或查看其某些功能的工作方式,以下最简单的 Manticoresearch 配置可能会有用:
source min { type = mysql sql_host = localhost sql_user = root sql_pass = sql_db = test sql_query = select 1, 'cat' union select 2, 'dog' } index idx_min { path = …

安装Manticore Search

安装Manticore Search