分布式搜索

Manticore 通过其分布式搜索能力设计得以有效扩展。分布式搜索有助于提升查询延迟(即搜索时间)和吞吐量(即最大查询次数/秒),适用于多服务器、多CPU或多核环境。这对于需要搜索海量数据(即数十亿记录和数TB文本)的应用至关重要。

其主要理念是将被搜索的数据水平划分到不同的搜索节点中,并行处理。

分区需要手动完成。配置步骤如下:

  • 在不同服务器上部署多个 Manticore 实例
  • 将数据集的不同部分分发给不同实例
  • 在一些 searchd 实例上配置特殊的分布式表
  • 将查询路由到该分布式表

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

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

  1. 连接到配置的远程代理
  2. 将查询发送给远程代理
  3. 同时搜索配置的本地表(在远程代理搜索的同时)
  4. 从远程代理检索搜索结果
  5. 合并所有结果,去除重复项
  6. 将合并后的结果发送给客户端

从应用程序角度看,搜索常规表和分布式表没有区别。换言之,分布式表对应用程序是完全透明的,无法判断查询的是分布式表还是本地表。

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

Last modified: August 28, 2025