用途:Elasticsearch 是基于 Apache Lucene 的分布式搜索与分析引擎,适合全文搜索、日志与指标分析、搜索型应用、聚合仪表盘、地理空间查询与向量检索,但不适合需要 ACID 事务、复杂 JOIN、强 Schema 约束或键值缓存的场景。
主要能力:索引与映射(text/keyword/date/geo/nested 等字段类型、分词器、别名、分片规划);写入(Index、Bulk、_update、_update_by_query、Logstash/Filebeat 采集);查询 DSL(match、multi_match、query_string、term、range、bool、nested、geo、knn、fuzzy 等);聚合(指标、桶、管道聚合);集群运维(节点类型、分片管理、快照、ILM、监控命令、RBAC 与 TLS);性能排查(Profile API、慢查询日志)。
使用方式:资料给出 5 步决策流程——明确场景、设计索引(Mapping 与 Analyzer、主分片建后不可改、设置别名)、写入数据、构建查询、持续优化。常用命令包括 _cluster/health、_cat/nodes、_cat/shards、hot_threads。深度分页推荐 search_after/PIT,导出用 scroll;filter 优先于 query,避免脚本滥用。
适用场景:商品/文章/文档全文搜索、ELK 日志分析、电商/知识库搜索、实时统计与 Kibana 可视化、地理空间与自动补全、向量语义检索;不适用于复杂事务、简单 KV、PB 级离线 OLAP 或消息队列。
限制:ES 是近实时(默认 1s refresh),非关系型数据库替代品;已有字段类型与主分片数不可修改,需重建索引;依赖动态映射有风险,生产环境应显式 mapping;text 字段不支持排序/聚合,需用 .keyword;wildcard/regexp 前缀搜索性能差;嵌套对象必须用 nested 查询;日志索引建议配置 ILM。其他细节暂未提供。