搭建自己的搜索引擎之四

一、前言

搭建自己的搜索引擎之三 介绍了通过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 的写法下一篇再介绍。

相关推荐
fanged15 小时前
Yocto1--环境搭建和验证
大数据·搜索引擎·嵌入式
聚美智数1 天前
拉伸图像恢复-图片去雾-拉伸图片修复-图像去雾-畸变图像修复API接口介绍
经验分享·搜索引擎
程序员z71 天前
Elasticsearch 倒排索引详解
大数据·elasticsearch·搜索引擎
玫瑰互动GEO1 天前
抖音SEO优化技术拆解:搜索排名四大因子与4步落地算法分析
人工智能·算法·搜索引擎·语音识别
daxiang_ipo1 天前
AI应用,正式步入质变跃迁期
人工智能·搜索引擎·百度
Scott9999HH1 天前
2026 年企业级生成式搜索引擎底层架构演进与生成式引擎优化系统推荐:从多路向量同步到全域自动化 GEO 中台的落地实战
搜索引擎·架构·自动化
2601_954526751 天前
2026 生成式搜索引擎底层技术演进与 GEO优化服务商推荐:大模型检索增强(RAG)管道与语义对齐工程实战
大数据·人工智能·搜索引擎
dozenyaoyida3 天前
AI与大模型新闻日报 | 2026-08-22
人工智能·搜索引擎·大模型·新闻
m24tyy4 天前
常见空间测绘搜索引擎介绍和使用以及子域名的收集
网络·测试工具·搜索引擎
Sayai4 天前
Elasticsearch 日志索引设计:按小时切分 + 小时内 Rollover 兜底(ILM 实战,附完整脚本)
大数据·elasticsearch·搜索引擎