springboot集成es插入和查詢的簡單使用示例詳解
第一步:引入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>第二步:配置yml文件,在spring下面加上這個(gè)
elasticsearch:
rest:
# ip是服務(wù)器ip地址
uris: http://127.0.0.1:9200然后啟動(dòng)項(xiàng)目,看到出現(xiàn)這個(gè)就是成功了

第三步: 創(chuàng)建一個(gè)常量類,用于存儲(chǔ)我們一會(huì)兒要用到的名稱
public class OrderEs {
public static final String INDEX_NAME = "order_index";
public static final String ID = "id";
public static final String ORDER_NO = "order_no";
public static final String ORDER_BUYER = "order_buyer";
public static final String ORDER_PHONE = "order_phone";
public static final String REAL_PAY = "real_pay";
public static final String ACCOUNT = "account";
}第四步:創(chuàng)建Es實(shí)體類,注意要加上@Document注解
@Document(indexName = OrderEs.INDEX_NAME)
@Data
public class OrderEsPO {
@Id
@Field(type = FieldType.Keyword,name = OrderEs.ID)
private String id;
@Field(type = FieldType.Keyword,name = OrderEs.ORDER_NO)
private String orderNo;
@Field(type = FieldType.Keyword,name = OrderEs.ORDER_BUYER)
private String orderBuyer;
@Field(type = FieldType.Keyword,name = OrderEs.ORDER_PHONE)
private String orderPhone;
@Field(type = FieldType.Keyword,name = OrderEs.REAL_PAY)
private String realPay;
@Field(type = FieldType.Keyword,name = OrderEs.ACCOUNT)
private String account;
}第五步:寫測試接口,這里展示了插入和查詢兩個(gè)方法
@RestController
@RequestMapping("/order")
@CrossOrigin
public class OrderController
@Resource
private ElasticsearchRestTemplate elasticsearchRestTemplate;
/**
* es插入
*
* @return {@link String}
*/
@GetMapping("/esinsert")
@Transactional
public String esInsert(){
OrderEsPO orderEsPO = new OrderEsPO();
orderEsPO.setOrderNo("1234455");
orderEsPO.setOrderBuyer("張三");
orderEsPO.setOrderPhone("13191892075");
orderEsPO.setRealPay("100000");
orderEsPO.setAccount("1008611");
elasticsearchRestTemplate.save(orderEsPO);
return "success";
}
/**
* es搜索
*
* @param orderEsPO 訂單es參數(shù)
* @return {@link String}
*/
@GetMapping("/essearch")
@Transactional
public String esSearch(OrderEsPO orderEsPO){
/**構(gòu)造查詢對象**/
BoolQueryBuilder booleanQueryBuilder = QueryBuilders.boolQuery();
/**編寫查詢條件**/
booleanQueryBuilder.should(QueryBuilders.termQuery(OrderEs.ORDER_NO,orderEsPO.getOrderNo()));
/**構(gòu)造query對象**/
NativeSearchQuery nativeSearchQuery = new NativeSearchQuery(booleanQueryBuilder);
/**搜索**/
SearchHits<OrderEsPO> search = elasticsearchRestTemplate.search(nativeSearchQuery, OrderEsPO.class, IndexCoordinates.of(OrderEs.INDEX_NAME));
List<OrderEsPO> collect = search.getSearchHits().stream().map(SearchHit::getContent).collect(Collectors.toList());
return collect.toString();
}
}然后我們啟動(dòng)項(xiàng)目,先調(diào)用插入接口,由于這個(gè)索引一開始是不存在的,第一次調(diào)用后會(huì)默認(rèn)創(chuàng)建索引,然后打開我們的可視化界面,就能看到這里的索引

再調(diào)用查詢,就能看到如下信息了

說明兩個(gè)接口都能被調(diào)用成功,es的簡單使用就完成了
到此這篇關(guān)于springboot集成es 插入和查詢的簡單使用的文章就介紹到這了,更多相關(guān)springboot集成es 查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解IDEA2020新建spring項(xiàng)目和c3p0連接池的創(chuàng)建和使用
C3P0是一個(gè)開源的JDBC連接池,它實(shí)現(xiàn)了數(shù)據(jù)源和JNDI綁定,本文就使用Spring實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
SPFA算法的實(shí)現(xiàn)原理及其應(yīng)用詳解
SPFA算法,全稱為Shortest?Path?Faster?Algorithm,是求解單源最短路徑問題的一種常用算法,本文就來聊聊它的實(shí)現(xiàn)原理與簡單應(yīng)用吧2023-05-05
Spring Boot Admin Server管理客戶端過程詳解
這篇文章主要介紹了Spring Boot Admin Server管理客戶端過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
SpringBoot詳細(xì)講解如何創(chuàng)建及刷新Spring容器bean
前面看spring源碼時(shí)可以發(fā)現(xiàn)refresh()方法十分重要。在這個(gè)方法中會(huì)加載beanDefinition,同時(shí)創(chuàng)建bean對象。那么在springboot中有沒有使用這個(gè)refresh()方法呢2022-06-06
使用LambdaQueryWrapper動(dòng)態(tài)加過濾條件?動(dòng)態(tài)Lambda
這篇文章主要介紹了使用LambdaQueryWrapper動(dòng)態(tài)加過濾條件?動(dòng)態(tài)Lambda,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。2022-01-01
解決java.lang.IllegalArgumentException: URI is
這篇文章主要介紹了解決java.lang.IllegalArgumentException: URI is not hierarchical報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06
JAVA反射機(jī)制中g(shù)etClass和class對比分析
這篇文章主要介紹了JAVA反射機(jī)制中g(shù)etClass和class對比分析,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11

