当前位置: 首页 > news >正文

Elasticsearch 8.x 在 java 中的使用情况

在 Java Spring Boot 微服务中集成Elasticsearch 8.x,推荐使用官方的Elasticsearch Java API Client(不同于 7.x 的 High Level REST Client)。

以下是Elasticsearch 8.x 集成常用 API 及使用示例

✅ 一、依赖配置(Maven)

<dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.11.1</version><!-- 使用最新 8.x 版本 --></dependency>

✅ 二、客户端配置(Spring Bean)

@ConfigurationpublicclassElasticsearchConfig{@BeanpublicElasticsearchClientelasticsearchClient(){RestClientrestClient=RestClient.builder(newHttpHost("localhost",9200)).build();ElasticsearchTransporttransport=newRestClientTransport(restClient,newJacksonJsonpMapper());returnnewElasticsearchClient(transport);}}

🔍 三、常用 API 和查询示例

1.Indexing(写入文档)

elasticsearchClient.index(i->i.index("products").id("1").document(newProduct("iPhone 15",799.0)));

2.Match 查询(全文搜索)

SearchResponse<Product>response=elasticsearchClient.search(s->s.index("products").query(q->q.match(m->m.field("name").query("iPhone"))),Product.class);

3.Term 查询(精确匹配)

elasticsearchClient.search(s->s.index("products").query(q->q.term(t->t.field("status.keyword").value("active"))),Product.class);

4.Bool 查询(多条件组合)

elasticsearchClient.search(s->s.index("products").query(q->q.bool(b->b.must(m->m.match(mm->mm.field("name").query("iPhone"))).filter(f->f.range(r->r.field("price").gte(JsonData.of(500)).lte(JsonData.of(1000)))))),Product.class);

5.分页 + 排序

elasticsearchClient.search(s->s.index("products").from(0).size(10).sort(sort->sort.field(f->f.field("price").order(SortOrder.Desc))),Product.class);

6.删除文档

elasticsearchClient.delete(d->d.index("products").id("1"));

✅ 四、实体类示例(Product)

publicclassProduct{privateStringname;privatedoubleprice;// Constructors, getters, setters...}

📌 小结:常用 API 关键点

功能API 调用
写入文档client.index()
全文搜索query().match()
精确匹配query().term()
复合查询query().bool()
分页 & 排序from(),size(),sort()
删除client.delete()
http://www.jsqmd.com/news/468420/

相关文章:

  • 量化策略兼容性设计
  • 从安装到部署:SmartFormat在.NET项目中的完整集成指南
  • 蓝桥杯 跑步计划
  • 论文写作必备!2026年超实用AI工具排行榜,学生党赶紧私藏! - 资讯焦点
  • 半同步复制
  • 蓝桥杯 残缺的数字
  • 苍穹外卖(数据统计-图形报表)
  • 苍穹外卖(数据统计–Excel报表)
  • 蓝桥杯 整数变换
  • OpenTelemetry Operator避坑指南:从TLS证书配置到Sidecar自动注入的全流程解析
  • 算法训练-模拟
  • Java(API与算法篇)
  • 量化交易策略的运行
  • 蓝桥杯 定时任务
  • 医疗影像分割实战:从原理到代码,全面解析surface-distance评估指标
  • 蓝桥杯 火车运输
  • ArcGIS实战:从XYZ坐标点到等高线的全流程解析
  • OpenVINO模型量化实战:用NNCF搞定PaddleOCR文本检测模型(附完整代码)
  • 为什么消息队列不像数据库那样可以配置读写分离?
  • Halcon 3D视觉实战:从点云预处理到精准定位的完整流程解析
  • 蓝桥杯 最大区间
  • 大端小端检测实战:5分钟用联合体写出CPU字节序测试工具(附结构体对比)
  • 量化交易系统技术方案设计
  • pr 3dmax ae au 达芬奇等各类安装包需要的自提,
  • swift- Swift中常见的面试题
  • Electron-build进阶技巧:利用NSIS脚本实现安装包注册表操作与文件管理
  • TL5000BCJ激光器参数解析与常见应用场景(含线宽与功率优化技巧)
  • Kafka topic 中的 partition 数据倾斜问题
  • 点云配准避坑指南:ICP算法中点到点/面/线的5个实战误区
  • Protobuf编码实战:从TLV到ZigZag,手把手解析二进制流