首页/数据/NoSQL 速查/倒排索引与检索成本
本包目录(322 条)
MongoDB99 条Elasticsearch89 条ClickHouse56 条时序与列式28 条
选型与架构50 条

倒排索引与检索成本

倒排索引把"词条 → 文档列表"组织成词典与倒排表:词条匹配(term/match)走索引很快,而前导通配、正则与对分析后词条的整串匹配要扫描大量词条或全部文档。

NoSQL 速查数据更新于 2026-10-12
结构term dictionary + postings list,另存文档值(doc values)供排序聚合
高效查询词条精确匹配、前缀匹配、短语(带位置信息)、布尔组合
低效查询以通配开头的模式、复杂正则、无索引字段的范围与排序

示例

示例
GET /my-index/_search
{ "query": { "term": { "status.keyword": "open" } } }

# 前导通配:需要遍历大量词条
GET /my-index/_search
{ "query": { "wildcard": { "name.keyword": { "value": "*-prod" } } } }
搜索库优化多从"把过滤条件变成词条可命中的形式"入手:规范化字段、拆分维度、用 n-gram 或专用字段替代通配。

易错点

  • 把关键词检索需求交给 LIKE 或正则,数据量上来后扫描代价无法收敛
  • 对 text 字段做排序聚合触发 fielddata 加载,正确做法是 keyword 子字段

数据来源与参考

  • Elasticsearch Guide: Inverted index
  • Elasticsearch Guide: Wildcard query
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌