加载中

Elasticsearch

文章分类

浏览该分类下的所有文章

4 篇文章 1

Elasticsearch初体验-----将MySQL的数据导入kibana并展示到页面

本文详细演示了在已装 Docker 的服务器上,使用 Docker 部署单节点 Elasticsearch(7.12.1)和 Kibana(7.12.1),包括创建网络、加载镜像、配置容器参数及端口映射。随后通过 MyBatis‑Plus 编写 Java 示例,批量查询 MySQL 中的 hotel 表数据,转换为文档并使用 RestHighLevelClient 的 BulkRequest 将其写入 Elasticsearch 索引。最后在 Kibana 的 DevTools 和可视化页面验证数据已成功导入并展示。

SpringBoot+Elasticsearch按日期实现动态创建索引

文章介绍了在 SpringBoot 项目中通过 EL 表达式和 @Document 注解实现按日期动态创建 Elasticsearch 索引的完整方案。先在配置类中定义名为 esIndex 的 Bean,返回当前日期(或时间戳)作为索引后缀;再利用 @Scheduled 定时任务在每天零点销毁并重新注册该 Bean,同时手动调用 ElasticsearchRestTemplate 创建新索引,以确保 shards、replicas 等参数生效。实体类通过 createIndex = false 关闭自动建索,引入日期后缀的 indexName;Repository 负责 CRUD,Controller 示例演示保存数据并观察 Kibana/Head 中新索引的生成。文中亦提供了在 save 前检查索引是否存在、手动更新 Bean 的替代实现方式。

es 在数据量很大的情况下(数十亿级别)如何提高查询效率?

在海量(十亿级)数据场景下提升 Elasticsearch 查询性能的核心是让索引文件尽可能落在 OS filesystem cache 中。做法包括:①为机器配置足够内存,使所有 idx segment 能被缓存;②仅在 ES 中存储用于检索的关键字段,其余数据转存 MySQL、HBase 等;③对热点数据进行预热,使用冷热分离,将热数据单独建索引并分配专用 shard,避免冷数据冲刷缓存;④在写入阶段完成关联,采用合理的 document 模型,避免在查询时使用 join、nested、parent‑child 等高开销特性;⑤分页时禁用深度分页,改用 scroll 或 search_after 逐页检索。通过这些措施,可把查询大幅从磁盘 I/O 转为内存访问,显著提升响应速度。

Elasticsearch7.x实战指南

Elasticsearch 7.x 主要变化包括:废弃 TransportClient,只能使用 REST High‑Level Client;type 统一为 _doc 并将在 8.x 删除;默认分片数改为 1、节点名为主机名;Lucene 升级至 8,加入 weak‑and 与 intervals 查询提升相关性与顺序控制;集群协调去掉 minimum_master_nodes,新增熔断机制防 OOM;刷新策略在空闲时可跳过。文中提供索引、映射、文档的 CRUD 示例,介绍 geo_point、动态映射、dynamic_templates 以及 Query DSL 基础用法,帮助实现完整的 ES7 实战。