package com.elastic.org.cn;
import com.google.gson.Gson;
import com.elastic.org.cn.entity.CarType;
import com.elastic.org.cn.entity.Product;
import com.elastic.org.cn.service.CarSerialBrandService;
import com.elastic.org.cn.service.CarTypeService;
import com.elastic.org.cn.service.ProductService;
import com.elastic.org.cn.util.ESClient;
import lombok.SneakyThrows;
import org.apache.http.HttpHost;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.admin.indices.alias.Alias;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.get.*;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.support.master.AcknowledgedResponse;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.*;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.elasticsearch.client.indices.GetIndexResponse;
import org.elasticsearch.client.sniff.ElasticsearchNodesSniffer;
import org.elasticsearch.client.sniff.NodesSniffer;
import org.elasticsearch.client.sniff.SniffOnFailureListener;
import org.elasticsearch.client.sniff.Sniffer;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.reindex.BulkByScrollResponse;
import org.elasticsearch.index.reindex.UpdateByQueryRequest;
import org.elasticsearch.script.Script;
import org.elasticsearch.script.ScriptType;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.aggregations.Aggregation;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval;
import org.elasticsearch.search.aggregations.bucket.histogram.Histogram;
import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
import org.elasticsearch.search.aggregations.metrics.Avg;
import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.IOException;
import java.util.*;
import javax.annotation.Resource;
import java.net.InetAddress;
import java.time.format.DateTimeFormatter;
@SpringBootTest
class ESApplicationTests {
@Resource
private ProductService service;
@Resource
private CarSerialBrandService carService;
@Resource
private CarTypeService carTypeService;
//region crud
@Test
@SneakyThrows
void esCRUD() {
Settings settings = Settings.builder()
.put("cluster.name", "elasticsearch").build();
TransportClient client = new PreBuiltTransportClient(settings)
// TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300)); // 通讯端口号
//导入数据
create(client);
//查询
get(client);
getAll(client);
update(client);
delete(client);
client.close();
System.out.println(client);
//Add transport addresses and do something with the client...
}
//region 创建索引
@SneakyThrows
private void create(TransportClient client) {
List<Product> list = service.list();
for (Product item : list) {
System.out.println(item.getDate().toLocalDateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
IndexResponse response = client.prepareIndex("product", "_doc", item.getId().toString())
.setSource(XContentFactory.jsonBuilder()
.startObject()
.field("name", item.getName())
.field("desc", item.getDesc())
.field("price", item.getPrice())
.field("date", item.getDate().toLocalDateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))
.field("tags", item.getTags().replace("\"", "").split(","))
.endObject())
.get();
System.out.println(response.getResult());
}
}
//endregion
//region 根据Id查找
/*
* 功能描述: <br>
* 〈〉
* @Param: [client]
* @Return: void
* @Author: wulei
* @Date: 2020/6/16 23:28
*/
@SneakyThrows
private void get(TransportClient client) {
GetResponse response = client.prepareGet("product", "_doc", "1").get();
String index = response.getIndex();//获取索引名称
String type = response.getType();//获取索引类型
String id = response.getId();//获取索引id
System.out.println("index:" + index);
System.out.println("type:" + type);
System.out.println("id:" + id);
System.out.println(response.getSourceAsString());
}
//endregion
//region 查询所有文档
private void getAll(TransportClient client) {
SearchResponse response = client.prepareSearch("product")
.get();
SearchHits searchHits = response.getHits();
SearchHit[] hits = searchHits.getHits();
for (SearchHit hit : hits) {
String res = hit.getSourceAsString();
System.out.println("res" + res);
}
}
//endregion
//region 更新文档
@SneakyThrows
private void update(TransportClient client) {
UpdateResponse response = client.prepareUpdate("product", "_doc", "2")
.setDoc(XContentFactory.jsonBuilder()
.startObject()
.field("name", "update name")
.endObject())
.get();
System.out.println(response.getResult());
}
//endregion
//region 删除指定Id文档
@SneakyThrows
private void delete(TransportClient client) {
DeleteResponse response = client.prepareDelete("product", "_doc", "2").get();
System.out.println(response.getResult());
}
//endregion
//endregion
//region 多条件查找
/*
* 功能描述: <br>
* 〈多条件查找〉
* @Param: []
* @Return: void
* @Author: wulei
* @Date: 2020/6/17 10:02
*/
@Test
@SneakyThrows
void multiSearch() {
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300));
SearchResponse response = client.prepareSearch("product")
.setQuery(QueryBuilders.termQuery("name", "xiaomi"))//Query
.setPostFilter(QueryBuilders.rangeQuery("price").from(0).to(4000))
.setFrom(1).setSize(2)
.get();
SearchHits searchHits = response.getHits();
SearchHit[] hits = searchHits.getHits();
for (SearchHit hit : hits) {
String res = hit.getSourceAsString();
System.out.println("res" + res);
}
client.close();
}
//endr
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java High Level Client的Elasticsearch客户端的常用操作代码

共202个文件
xml:138个
java:19个
class:18个


温馨提示
Elasticsearch客户端常用代码封装实例 基于MyBatis Plus的Java High Level Client ES客户端的常用操作 如:增删改查、聚合查询、客户端封装、节点嗅探等常用代码示例
资源详情
资源评论
资源推荐
收起资源包目录





































































































共 202 条
- 1
- 2
- 3
































Elastic开源社区
- 粉丝: 2w+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 网络文学中的古典文学传统.docx
- [建造师]一级《建设工程项目管理》试题.doc
- 综合布线系统工程参考大全.doc
- 计算机科学与技术在数据管理领域的运用研究.docx
- 企业信息化建设中的标准资源发展策略研究.docx
- 这里是一些学习自动驾驶及工作的资料,主要是一些书籍
- 信息化建设的步骤.doc
- 单片机的多路无线遥控节能灯控制器研究与设计开发.doc
- Flet增删改查数据表进行数据管理的框架自定义组件模板
- 计算机安全论文-浅议数据加密技术与计算机安全.doc
- 软件工程导论重点内容.doc
- 在Linux下安装配置Oracle11gR2.doc
- 数据库课程实施方案任务书.doc
- 电网调度自动化知识竞赛复习题库.doc
- 数字通信原理课后习题标准答案.doc
- 射频技术与应用移动通信中的射频技术.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论1