Elasticsearch全文检索实战:从安装配置到高级查询的完整指南

文章最后更新时间:2026-04-12 09:40:34

【免责声明:本文由AI辅助生成,内容仅供参考,不构成专业建议。】

Elasticsearch全文检索实战:从安装配置到高级查询的完整指南

Elasticsearch是强大的全文检索引擎。本文从安装配置到高级查询,分享完整的Elasticsearch实战经验。

Elasticsearch基础概念

集群(Cluster):由多个节点组成,共同存储数据。集群名cluster.name唯一标识。

节点(Node):Elasticsearch实例。一个节点也是一个集群(单节点)。

索引(Index):存储文档的逻辑容器。类似数据库。

文档(Document):索引中存储的基本单位。JSON格式。

分片(Shard):索引水平拆分成的片段。分为主分片和副本分片。

安装与配置

单节点安装:下载tar包,解压运行bin/elasticsearch。简单快速。

Docker安装:docker run -d -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” elasticsearch:8.0。

Kibana安装:Docker运行Kibana连接ES。docker run -d -p 5601:5601 -e “ELASTICSEARCH_HOSTS=http://ES_HOST:9200” kibana:8.0。

安全配置:开启X-Pack安全。用户名密码认证、TLS加密。

索引管理

创建索引:PUT /my-index。设置分片数、副本数、映射。

映射配置:定义字段类型。text(全文检索)、keyword(精确匹配)、date、integer、geo_point等。

分词器配置:中文分词用ik_max_word或pinyin。analysis.analyzer配置。

文档CRUD:POST创建、GET读取、PUT更新、DELETE删除文档。

搜索查询

全文检索:match查询进行全文搜索。match_phrase查询短语。

精确匹配:term查询精确值。terms查询多个值。

范围查询:range查询数值或日期范围。gte、gt、lte、lt条件。

组合查询:bool查询组合多个条件。must、should、must_not、filter。

聚合分析

指标聚合:sum、avg、min、max、cardinality计算统计值。

桶聚合:terms按字段值分桶。range、date_histogram按范围分桶。

嵌套聚合:聚合中嵌套聚合。分组后计算每组的统计值。

Pipeline聚合:对聚合结果再聚合。avg_bucket、max_bucket等。

性能优化

分片优化:分片数 = 数据量 / 分片大小(建议20-50GB)。副本数根据可用性需求设置。

查询优化:使用filter替代query(不评分更快)。避免通配符前缀查询。

写入优化:批量写入(Bulk API)、refresh_interval调整、写入前增加副本数。

存储优化:选择合适的副本数、开启索引压缩、定期清理旧数据。

集群运维

监控:使用Kibana或Prometheus监控集群健康。备份:使用Snapshot API定期备份。升级:按版本顺序升级,注意兼容性问题。


更多技术文章:https://blog.hanyucloud.com | 客服:400-880-3980

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容