3.4.索引

优质
小牛编辑
134浏览
2023-12-01

为了快速地相应响应查询,Sphinx需要从文本数据中建立一种为查询做优化的特殊的数据结构。这种数据结构被称为索引(index);而建立索引的过程也叫做索引或建立索引(indexing)。

不同的索引类型是为不同的任务设计的。比如,基于磁盘的B-Tree存储结构的索引可以更新起来比较简单(容易向已有的索引插入新的文档),但是搜起来就相当慢。因此Sphinx的程序架构允许轻松实现多种不同的索引类型。

目前在Sphinx中实现的唯一一种索引类型是为最优化建立索引和检索的速度而设计的。随之而来的代价是更新索引相当的很慢。理论上讲,更新这种索引甚至可能比从头重建索引还要慢。不过大多数情况下这可以靠建立多个索引来解决索引更新慢的问题,细节请参考Section3.11, “实时索引更新”.

实现更多的索引类型支持,已列入计划,其中包括一种可以实时更新的类型。

每个配置文件都可以按需配置足够多的索引。indexer工具可以将它们同时重新索引(如果使用了--all选项)或者仅更新明确指出的一个。searchd工具会为所有被指明的索引提供检索服务,而客户端可以在运行时指定使用那些索引进行检索。