用途:该技能用于建模 Elasticsearch 索引、编写查询、排查检索问题与优化性能,覆盖 index/mapping、Query DSL、aggregations、bulk 入库和客户端使用。OpenSearch 共享大部分 DSL,可沿用已采用的产品,但不要混用不兼容版本的 API。
主要能力与规则:为关键字段定义显式 mapping,生产环境不依赖 dynamic mapping;精确条件用 bool 的 filter/must_not(可缓存且不计分);全文检索用 text,ID、状态、标签用 keyword 或 .keyword;深分页用 search_after / point-in-time,避免大索引上高 from;bulk 控制批次并处理 items[].error,重试需幂等;多租户必须服务端过滤 tenant_id 等字段;客户端查询语句在服务端构造,集群不得无认证暴露公网。
建模与查询:mapping 中可为同一字段配置 text 加 keyword 多字段,兼顾全文检索与排序聚合;nested/join 仅在确有需要时使用;用 alias 做 blue/green 重建索引,应用指向别名。查询示例结构为 bool 组合 must 的 match 与 filter 的 term,配合 sort 和 size;布尔组合优先于热路径脚本,minimum_should_match、fuzziness 与 boost 需有相关性度量依据,_source 过滤避免拉取大字段。
入库与运维:bulk 按批次提交并周期性 flush;可选用 ingest pipeline 做归一化与增强;mapping 破坏性变更用 reindex 加别名切换。聚合用于 keyword、数值、日期字段,限制 terms 的 size,大桶用 composite 分页,不以聚合替代数据仓库。面向应用需关注超时与 track_total_hits、429/503 退避、search/index p99、refresh lag 与 rejected bulk,分片从简开始,避免过度分片。
适用场景与限制:适合构建检索、日志类检索与多租户搜索的工程实践参考。文中未提供具体定价、平台支持范围与部署环境要求,相关信息暂未提供。