在海量数据中进行实时搜索是现代应用的标准需求。Elasticsearch 是目前最流行的开源搜索引擎,其核心依赖于 Lucene 的倒排索引技术。
什么是倒排索引 (Inverted Index)?
传统的数据库使用正排索引(Forward Index),即“文档ID -> 关键词”。而倒排索引则是“关键词 -> 文档ID列表”。
例如,对于两个文档:
- Doc 1: "The quick brown fox"
- Doc 2: "The quick brown dog"
倒排索引结构如下:
Term | Doc IDs ------------------- quick | [1, 2] brown | [1, 2] fox | [1] dog | [2]
当我们搜索 "fox" 时,系统可以直接定位到 Doc 1,而不需要遍历所有文档。这种结构使得全文搜索的速度极快。
分词器 (Analyzer)
在建立索引之前,文本需要经过分词处理。Elasticsearch 提供了多种分词器,如 Standard Analyzer(标准分词)、IK Analyzer(中文分词)。分词器的选择直接影响搜索的准确率(Precision)和召回率(Recall)。

发表评论 取消回复