用途:Elasticsearch 是搜索与分析引擎,提供全文搜索、聚合分析和文档存储,适合实现搜索功能或做日志分析。资料同时明确列出不适合的场景:事务型主库、缓存、强一致 ACID 事务、小于 10 万文档的小数据集、需要实时更新的场景。
主要能力:索引管理(创建、检查、获取映射、更新映射、删除、reindex);文档 CRUD 与 bulk 批量写入;查询类型包括 match、match_phrase、multi_match、term、terms、range、bool、wildcard、fuzzy、prefix;分页与排序(from/size、search_after);资料提到 advanced.md 还含聚合、自动补全/建议、高亮、自定义分析器、索引模板、ILM 和 Spring Data Elasticsearch,可用 mcp__documentation__fetch_docs 获取更全文档。
用法:Docker 启动命令为 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=false" elasticsearch:8.12.0;Node.js 客户端安装 npm install @elastic/elasticsearch,并用 new Client({ node: 'http://localhost:9200' }) 连接。索引需定义显式 mapping 与自定义 analyzer。
限制与建议:生产环境应使用显式 mapping,避免动态映射;深分页用 search_after 或 scroll;配置 ILM 与至少 1 个副本;避免以 * 开头的 wildcard 查询;bulk 建议每批 5000-15000 文档;生产环境 refresh interval 建议 30s;分片约每 50GB 一个。默认近实时有约 1 秒延迟。监控指标包括搜索延迟 p99 < 100ms、JVM 堆 < 75%、磁盘使用 < 80%。以上为资料提供的信息,价格与平台支持等未提供。