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è)常量類,用于存儲我們一會(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)文章
Spring session 獲取當(dāng)前賬戶登錄數(shù)的實(shí)例代碼
這篇文章主要介紹了Spring session 獲取當(dāng)前賬戶登錄數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04Java Set集合及其子類HashSet與LinkedHashSet詳解
這篇文章主要介紹了Java Set集合及其子類HashSet與LinkedHashSet詳解,文章通過Set集合存儲原理展開文章主題相關(guān)介紹,感興趣的小伙伴可以參考一下2022-06-06