Springboot整合Elasticsearch、搭建Logstash同步数据
整合Springboot
通过虚拟机搭建ES , 这里使用的版本是6.4.3 , 引入相应依赖
org.springframework.boot
spring-boot-starter-data-elasticsearch#使用2.2.2是为了对应ES的版本2.2.2.RELEASE
引入依赖之后可以自行查看
文章图片
spring:data:elasticsearch:#在es中配置的名称cluster-name:es#如果是集群 , 用,分隔cluster-nodes:192.168.1.7:9300
文章图片
测试实体类
packagecom.csea.entity;importlombok.Data;importorg.springframework.data.annotation.Id;importorg.springframework.data.elasticsearch.annotations.Document;importorg.springframework.data.elasticsearch.annotations.Field;/***@authorCsea*@title*/@Data@Document(indexName="merchant",type="doc")publicclassMerchant{@IdprivateLongmerchantId;//store=true表示这是要存储的字段@Field(store=true)privateStringname;@Field(store=true)privateStringmob;@Field(store=true)privateStringaddress;@Field(store=true)privateStringdescr;
}
创建索引(文档)
当索引不存在时候 , 会先创建索引 , 并将数据插入 。
@AutowiredprivateElasticsearchTemplateelasticsearchTemplate;@TestpublicvoidcreateIndex{
Merchantmerchant=newMerchant;
merchant.setMerchantId(1001L);
merchant.setName("Csea-杂货铺1");
merchant.setAddress("大道8888号");
merchant.setDescr("好吃的不得了");
merchant.setMob("13899999999");
IndexQueryindexQuery=newIndexQueryBuilder.withObject(merchant).build;
elasticsearchTemplate.index(indexQuery);
}
执行完之后可以看到merchant索引已经创建 , 并且文档也新增了 。 
文章图片
文章图片
更新文档
@TestpublicvoidupdateMerchantDoc{
MapsourceMap=newHashMap<>;
sourceMap.put("name","Csea-杂货铺-update");
sourceMap.put("adress","光明大道8888号");
sourceMap.put("descr","好吃你就多吃点!~");
IndexRequestindexRequest=newIndexRequest;
indexRequest.source(sourceMap);
UpdateQueryquery=newUpdateQueryBuilder.withClass(Merchant.class).withId("1001").withIndexRequest(indexRequest).build;
elasticsearchTemplate.update(query);
}
文章图片
查询文档
@TestpublicvoidqueryMerchantDoc{
GetQueryquery=newGetQuery;
query.setId("1001");
Merchantmerchant=elasticsearchTemplate.queryForObject(query,Merchant.class);
log.info("查询到的数据是={}",merchant);
}com.test.ESTest:查询到的数据是=Merchant(merchantId=1001,name=Csea-杂货铺-update,mob=13899999999,address=大道8888号,descr=好吃你就多吃点!~)
删除文档数据
@TestpublicvoiddelMerchantDoc{
elasticsearchTemplate.delete(Merchant.class,"1001");
}
分页文档查询
@TestpublicvoidsearchPageMerchantDoc{
Pageablepageable=PageRequest.of(0,20);
SearchQueryquery=newNativeSearchQueryBuilder
.withQuery(QueryBuilders.matchQuery("description","GodEngineer"))
.withPageable(pageable)
.build;
AggregatedPagemerchants=elasticsearchTemplate.queryForPage(query,Merchant.class);
Listcontent=merchants.getContent;for(Merchantmerchant:content){
log.info("查询到的文档为:{}",merchant);
}
}
高亮分页查询
@TestpublicvoidsearchHightMerchantDoc{
StringpreTag="";
StringpostTg="";
Pageablepageable=PageRequest.of(0,20);//排序SortBuildersortBuilder=newFieldSortBuilder("name")
.order(SortOrder.DESC);
SearchQueryquery=newNativeSearchQueryBuilder//查询的字段.withQuery(QueryBuilders.matchQuery("mob","88"))
.withHighlightFields(newHighlightBuilder.Field("mob")
.preTags(preTag)
- 算法|侃侃而谈| 为什么视频网站必然走向兼并整合?
- meta|Facebook内部通告:将重新整合即时通讯功能
- 驾驶舱|江苏扬州“人才科创驾驶舱” 整合资源推动三链深度融合
- 整合“长城、比亚迪”!吉利全新RADAR品牌将发
- 追漫神器来了!整合全网资源,安卓苹果两端都能免费用
- 36氪|36氪首发 |「乐胶网」完成Pre-A轮融资,整合包装耗材行业上下游资源,打造包装行业产业集群
- 苹果|新一代Apple CarPlay发布,深度整合数位仪表板!15家车企支持搭载
- 图灵奖|为什么数据整合很难?图灵奖得主迈克尔·斯通布雷克这样“解答”
- 华为|罗永浩:除了华为真的有技术外,其他都是方案整合商,各位不要装!
- 对于微软来说|微软更新android应用与windows11整合
