您的位置:首页 > 游戏 > 手游 > 软件开发电脑推荐_青白江网站建设_湖南网站营销推广_b站推广有用吗

软件开发电脑推荐_青白江网站建设_湖南网站营销推广_b站推广有用吗

2025/7/23 22:02:16 来源:https://blog.csdn.net/chushoufengli/article/details/148828567  浏览:    关键词:软件开发电脑推荐_青白江网站建设_湖南网站营销推广_b站推广有用吗
软件开发电脑推荐_青白江网站建设_湖南网站营销推广_b站推广有用吗

在Elasticsearch中,“常规的根据字段查询”且不涉及分词的查询(如精确匹配、范围查询),主要依赖以下索引机制:

一、核心索引类型及适用场景

字段类型索引结构典型查询方式应用场景
keyword倒排索引(未分词)termtermsexists订单ID、状态码、标签等精确匹配
数值/日期BKD树索引(多维空间划分)range><聚合价格区间、时间范围筛选
boolean倒排索引(二元值)term状态标记(如is_active=true
ip特殊编码倒排索引termprefixcidrIP地址过滤与网段查询

:所有精确匹配类查询均跳过文本分析(Analysis)环节,直接基于原始值检索。

二、查询执行流程(以keyword为例)

  1. 值标准化
    查询值"ES2025" → 按字段类型处理(如keyword保持原值);
  2. 倒排索引检索
    定位词项词典(Term Dictionary)中的"ES2025",获取其倒排列表(Posting List);
  3. 结果返回
    直接返回匹配文档ID集合,无相关性评分(因filter上下文不计算得分)。

三、性能优化关键点

  1. 索引设计

    • keyword替代text:对无需分词的字段(如ID、枚举值)显式定义为keyword,避免无效分词开销;
    • 禁用norms:对仅用于过滤的keyword字段设置"norms": false,减少磁盘占用;
  2. 查询策略

    • 使用filter上下文:利用位图(BitSet)缓存结果,重复查询速度提升100倍+;
      "bool": {"filter": [  // 无评分计算{"term": {"status": "published"}},{"range": {"price": {"gte": 100}}}]
      }
      
    • 分片路由优化:对高频过滤字段(如user_id)设置routing_path,使查询集中到特定分片;
  3. 存储压缩

    • doc_values启用:默认开启,支持对keyword/数值字段高效聚合、排序;
    • 列式存储优化:BKD树索引对数值范围查询采用数据压缩,减少I/O压力。

四、注意事项

  • text字段的精确匹配陷阱
    即使使用term查询text字段,ES仍会先分词再匹配(如"Quick Fox"被拆分为["quick","fox"]),导致无法精确命中 → 必须改用.keyword子字段。
  • 高基数keyword字段
    值基数过高(如user_id)时,需监控堆内存,避免Fielddata膨胀。

五、总结

常规非分词字段查询的核心索引机制:

  • 精确匹配 → keyword类型倒排索引(值完全匹配);
  • 范围查询 → 数值/日期类型BKD树索引(高效空间划分);
    优化本质:跳过文本分析、利用列式存储与缓存,实现亚毫秒级响应。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com