标准答案

  1. 倒排索引让搜索词快速定位文档,但会占用额外存储和写入资源。
  2. Mapping 决定字段按全文、关键词、数值、日期等方式索引;类型选错会导致查询语义或排序聚合错误。
  3. Analyzer 负责分词、标准化和停用词处理,索引时与查询时的分析策略要能匹配业务语言。
  4. Shard 划分数据和并行查询,Replica 提供冗余和读扩展;分片过多会增加协调、内存和恢复成本。

题目解析

倒排索引决定检索结构,Mapping 决定字段如何索引,Analyzer 决定文本如何切分和标准化,Shard 与 Replica 决定数据分布、并行和冗余。这些配置共同组成搜索数据模型。

text 通常用于全文分析,keyword 更适合精确匹配、排序和聚合;索引时与查询时分析器不匹配,会出现“明明有词却搜不到”或聚合语义错误。

分片和副本不仅影响吞吐,也影响协调、堆内存、段合并、迁移和恢复时间。字段类型或分析器变更通常需要新索引、回填和受控切换。

常见误区

  • 误区:把 text 和 keyword 当成同一种字段。改正:根据全文检索、精确过滤、排序和聚合分别建模,必要时使用多字段。
  • 误区:分片数量只按当前数据量决定。改正:同时评估未来增长、查询并行、恢复时间和节点资源,避免过多小分片。
  • 误区:只调查询语句,不观察段合并、堆内存和恢复时间。改正:把索引写入、查询、磁盘和恢复指标一起纳入验证。

作者信息