分布式搜索

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

其主要理念是将被搜索的数据水平分区到多个搜索节点,并行处理。

分区是手动完成的。设置步骤如下:

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

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

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

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

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

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

Last modified: August 28, 2025