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

Elasticsearch 基本使用

版本以 Elasticsearch 7.x 为主(目前最常用)

一、依赖(Maven)

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.17.0</version>
</dependency>

二、初始化客户端

RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http"))
);

三、新增文档(Create / Index)

1.普通新增(自动生成 ID)

IndexRequest request = new IndexRequest("user");
request.source(XContentFactory.jsonBuilder().startObject().field("name", "张三").field("age", 25).endObject());IndexResponse response = client.index(request, RequestOptions.DEFAULT);

2.指定 ID 新增

IndexRequest request = new IndexRequest("user").id("1001");
// ... 其他同上

四、查询文档(Get)

 
GetRequest request = new GetRequest("user", "1001");
GetResponse response = client.get(request, RequestOptions.DEFAULT);if (response.isExists()) {String name = response.getSource().get("name").toString();
}

五、更新文档(Update)

1.局部更新

UpdateRequest request = new UpdateRequest("user", "1001");
request.doc(XContentFactory.jsonBuilder().startObject().field("age", 26).endObject());UpdateResponse response = client.update(request, RequestOptions.DEFAULT);

2.upsert(不存在则插入)

request.upsert(XContentFactory.jsonBuilder().startObject().field("name", "张三").field("age", 25).endObject());

六、删除文档(Delete)

DeleteRequest request = new DeleteRequest("user", "1001");
DeleteResponse response = client.delete(request, RequestOptions.DEFAULT);

七、批量操作(Bulk)

 
BulkRequest request = new BulkRequest();request.add(new IndexRequest("user").id("1002").source(XContentFactory.jsonBuilder().startObject().field("name", "李四").endObject()));request.add(new DeleteRequest("user", "1001"));BulkResponse response = client.bulk(request, RequestOptions.DEFAULT);

八、搜索(Search)

1.基本搜索

SearchRequest request = new SearchRequest("user");
SearchSourceBuilder source = new SearchSourceBuilder();// 条件查询
source.query(QueryBuilders.termQuery("name", "张三"));request.source(source);
SearchResponse response = client.search(request, RequestOptions.DEFAULT);for (SearchHit hit : response.getHits()) {Map<String, Object> map = hit.getSourceAsMap();
}

2.分页 + 排序

source.from(0);
source.size(10);
source.sort("age", SortOrder.DESC);

3.多条件 bool 查询

BoolQueryBuilder bool = QueryBuilders.boolQuery();
bool.must(QueryBuilders.termQuery("name", "张三"));
bool.filter(QueryBuilders.rangeQuery("age").gte(20));source.query(bool);

九、关闭客户端

 

client.close();

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://www.jsqmd.com/news/295081/

相关文章:

  • AI如何做一部视频
  • 【计算机毕业设计案例】基于SpringBoot+Vue的小说阅读平台基于springboot的小说阅读平台(程序+文档+讲解+定制)
  • 【计算机毕业设计案例】基于springboot的游泳馆管理系统营销活动(如会员日折扣、组团优惠)(程序+文档+讲解+定制)
  • 【计算机毕业设计案例】基于springboot的智能药箱系统,药品分类、药品咨询(程序+文档+讲解+定制)
  • 【计算机毕业设计案例】基于springboot的自行车分享平台车辆监控、租赁流程自动化(程序+文档+讲解+定制)
  • vue2 表格如何使用 vxe-table 带列头复制单元格内容同步到 excel 中
  • Java毕设选题推荐:基于springboot的游泳馆运营管理系统水质检测、教练课程预约、排班【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 降低AI生成内容比例的10大网站排名:免费付费方案详细对比
  • 学长亲荐!继续教育必备TOP8 AI论文平台深度测评
  • 英文SCI论文降AI率,这3款工具亲测有效
  • 比话降AI vs 千笔AI:专业降AI和一站式平台怎么选
  • 2026智能重构:AI重塑软件全生命周期的深度研究报告
  • Pallas引擎 vs 普通降AI:比话的技术优势在哪
  • 计算机Java毕设实战-基于springboot的游泳馆管理系统售票 - 入场 - 消费 - 管理【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Java毕设项目:基于springboot的校园编程俱乐部管理系统(源码+文档,讲解、调试运行,定制等)
  • Java计算机毕设之基于springboot的游泳馆管理系统供课程预约、泳池信息查询、在线充值、教学管理(完整前后端代码+说明文档+LW,调试定制等)
  • 【毕业设计】基于springboot的校园编程俱乐部管理系统(源码+文档+远程调试,全bao定制等)
  • 大数据:基于AI大模型 python小说数据分析可视化系统 协同过滤推荐算法 可视化大屏 Django框架 Echarts可视化 (建议收藏)✅
  • 闲置支付宝消费券回收变现认准京顺回收
  • 抖音视频下载神器,批量下载用户所有视频
  • 习题与总结
  • 计算机Java毕设实战-基于SpringBoot在线小说阅读平台基于springboot的小说阅读平台【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Java毕设项目:基于springboot的小说阅读平台(源码+文档,讲解、调试运行,定制等)
  • Java毕设项目:基于springboot的游泳馆管理系统(源码+文档,讲解、调试运行,定制等)
  • Java计算机毕设之基于springboot框架的小说阅读平台基于springboot的小说阅读平台(完整前后端代码+说明文档+LW,调试定制等)
  • 【毕业设计】基于springboot的游泳馆管理系统(源码+文档+远程调试,全bao定制等)
  • 【课程设计/毕业设计】基于SpringBoot的阅读小说网站设计与实现基于springboot的小说阅读平台【附源码、数据库、万字文档】
  • 【课程设计/毕业设计】基于springboot的游泳馆会员管理、课程预订管理系统【附源码、数据库、万字文档】
  • 【毕业设计】基于springboot的小说阅读平台(源码+文档+远程调试,全bao定制等)
  • day168—递归—二叉树的最大路径和(LeetCode-124)