• 分布式搜索

Manticore 通过其分布式搜索功能有效地扩展了系统的能力。分布式搜索在多服务器、多 CPU 或多核环境中有助于改善查询延迟(即搜索时间)和吞吐量(即最大查询/秒)。对于需要处理海量数据(如数十亿条记录和数 TB 文本)的应用程序来说,这至关重要。

其核心概念是将搜索数据水平划分到不同的搜索节点上,并进行并行处理。

分区需要手动设置。设置步骤如下:

  • 在不同的服务器上设置多个 Manticore 实例

  • 将数据集的不同部分分配给不同的实例

  • 在某些 searchd 实例上配置一个特殊的分布式表

  • 将查询路由到分布式表上

这种类型的表只包含对其他本地或远程表的引用,因此不能直接重新索引。您应当重新索引它所引用的表。

当 Manticore 收到针对分布式表的查询时,会执行以下步骤:

  1. 连接到已配置的远程代理

  2. 将查询发送给它们

  3. 同时搜索配置的本地表(远程代理也在搜索)

  4. 从远程代理检索搜索结果

  5. 合并所有结果,删除重复项

  6. 将合并后的结果发送给客户端

从应用程序的角度来看,使用普通表或分布式表进行搜索没有任何区别。换句话说,分布式表对应用程序是完全透明的,无法判断查询的表是分布式表还是本地表。

了解更多关于远程节点的信息。

最后更新于