搭建自己的搜索引擎之四

一、前言

搭建自己的搜索引擎之三 介绍了通过HTTP RESTful 对ES进行增删改查,这一般手工运维ES时使用,程序代码中最好还是使用Java API去操作ES会更容易维护,但ES API竟然贼多,本篇介绍一下 四种 API及其简单使用。

注:有点类似于孔乙己说茴字的四种写法。

二、TransportClient

TransportClient在7.X版本已经不建议使用,在8.X版本以后将彻底废弃,它内部基于Transprot TCP连接到ES集群,它将自己做为集群一个节点,性能较好但版本必须与集群版本一致,spring-data-elasticsearch也是基于该Client。

三、RestClient

使用HTTP REST风格交互,客户端发送请求到ES的任何节点,节点会通过transport接口将请求路由到其他节点,完成数据处理后汇总并返回客户端,客户端负载低,它又有两套API。

1、低级REST客户端

低级 REST 客户端在内部使用 Apache Http Async 客户端 来发送 http 请求.

添加了依赖后会自动引入httpasyncclient、httpcore-nio、httpclient、httpcore这些包。

初始化RestClient配置

请求和响应 ,对搭建自己的搜索引擎之三 创建的索引数据进行查询

注:这种查询语法直接是很难写正确的,有一个小技巧,你可以用ElasticSearch-Head界面操作然后查看浏览器Network发出请求的PayLoad复制过来即可,它的增删改都与直接使用RestFul操作语法一样,只不过RestClient包装了Http请求响应的处理。

异步请求

2、高级REST客户端

低版本的RestClient很难使用,所以在6.0版本以后推出了Java High Level REST Client,提供更方便构建请求参数的方法,而不是直接写一堆JSON串。

注:elasticsearch-rest-client、elasticsearch需要手工引入,不然会有版本冲突。

初始化,RestHighLevelClient依赖于低级客户端来构建。

简单查询例子

另外 JavaRestClient和Spring Data EleasticSearch 的写法下一篇再介绍。

相关推荐
小白学大数据16 小时前
把 Modbus 轮询塞进 Trio 的异步循环:内存映射与定时采集实战
网络·python·搜索引擎
circuitsosk19 小时前
大规模离线数据管道构建:样本获取、清洗、加工与合成
人工智能·python·机器学习·搜索引擎
LaughingZhu20 小时前
Product Hunt 每日热榜 | 2026-08-02
前端·神经网络·react.js·搜索引擎·前端框架
Elastic 中国社区官方博客20 小时前
Elasticsearch:语义搜索快速入门
大数据·人工智能·elasticsearch·搜索引擎·全文检索
zhbcddxr1 天前
GEO选择指南类内容效能测评:决策辅助与可见度提升排行
搜索引擎
LaughingZhu2 天前
Product Hunt 每日热榜 | 2026-08-01
人工智能·深度学习·神经网络·搜索引擎·百度
ab7753732003 天前
新韩剧《毛骨悚然的恋爱》(2026) NF原版1080P画质,自带内封简中字幕 夸克网盘分享,支持在线播放
经验分享·搜索引擎·生活
Elastic 中国社区官方博客3 天前
Elasticsearch:搜索教程 - 语义搜索(三)
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
张永伟营销4 天前
从SEO到GEO:技术人视角下的生成式引擎优化架构与实践
搜索引擎·ai·架构
Elastic 中国社区官方博客4 天前
Elastic 和 OpenAI 合作,将前沿智能引入非结构化企业数据
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai