文章最后更新时间:
【免责声明:本文由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

















暂无评论内容