日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot集成Elastic Search

發(fā)布時間:2025/3/20 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot集成Elastic Search 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.導(dǎo)入maven依賴

本機(jī)安裝的是6.5.4版本的Elastic Search,故這里導(dǎo)入6.5.4版本的Elastic Search依賴

? ?<properties><java.version>1.8</java.version><elasticsearch.version>6.5.4</elasticsearch.version></properties> ?<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId><version>${elasticsearch.version}</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.7</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency> ?<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

二.創(chuàng)建配置類

1.Elastic Search的配置

  • 需要在/conf/elasticsearch.yml配置node和cluster.name以及允許跨域訪問

conf/elasticsearch.yml

cluster.name: dayukeji node.name: dayutec ? http.cors.enabled: true http.cors.allow-origin: "*"

2.創(chuàng)建配置類

9200作為Http協(xié)議,主要用于外部通訊

9300作為Tcp協(xié)議,jar之間就是通過Tcp協(xié)議通訊

ES集群之間是通過9300進(jìn)行通訊

@Configuration public class MyConfig {@Beanpublic TransportClient client() throws UnknownHostException { ?//配置settingSettings settings = Settings.builder().put("node.name", "dayutec").put("cluster.name", "dayukeji").build(); ?TransportClient client = new PreBuiltTransportClient(settings).addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300)); ?return client;} ? }

三.測試方法

先調(diào)用127.0.0.1:9200/book創(chuàng)建一個index

{"settings":{"number_of_shards":3,"number_of_replicas":1},"mappings":{"novel":{"properties":{"name":{"type":"text"},"price":{"type":"integer"},"word_count":{"type":"integer"}}}} }

1.新增

? ?@PostMapping("/book/novel")public ResponseEntity add(@RequestParam("name") String name,@RequestParam("price") Integer price,@RequestParam(value = "word_count") int wordCount) {try {XContentBuilder xContentBuilder = XContentFactory.jsonBuilder().startObject().field("name", name).field("price", price).field("word_count", wordCount).endObject();IndexResponse result = this.client.prepareIndex("book", "novel").setSource(xContentBuilder).get();return new ResponseEntity(result.getId(), HttpStatus.OK);} catch (IOException e) {e.printStackTrace();return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);}}

2.獲取

? ?/*** 獲取** @param id* @return*/@GetMapping("/book/novel/{id}")public ResponseEntity get(@PathVariable("id") String id) {GetResponse result = this.client.prepareGet("book", "novel", id).get();if (result.isExists()) {return new ResponseEntity(result.getSource(), HttpStatus.OK);} else {return new ResponseEntity(HttpStatus.NOT_FOUND);}}

3.修改

? ?@PutMapping("/book/novel/{id}")public ResponseEntity update(@PathVariable("id") String id,@RequestParam(value = "name", required = false) String name,@RequestParam(value = "price", required = false) Integer price) {UpdateRequest update = new UpdateRequest("book", "novel", id);try {XContentBuilder xContentBuilder = XContentFactory.jsonBuilder().startObject();if (name != null) {xContentBuilder.field("name", name);}if (price != null) {xContentBuilder.field("price", price);}xContentBuilder.endObject();update.doc(xContentBuilder);} catch (IOException e) {return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);}try {UpdateResponse result = this.client.update(update).get();return new ResponseEntity(result.getResult().toString(), HttpStatus.OK);} catch (InterruptedException e) {return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);} catch (ExecutionException e) {return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);}}

4.刪除

? ?@DeleteMapping("/book/novel/{id}")public ResponseEntity delete(@PathVariable("id") String id) {DeleteResponse result = this.client.prepareDelete("book", "novel", id).get();return new ResponseEntity(result.getResult().toString(), HttpStatus.OK);}

5.復(fù)雜查詢

? ?@GetMapping("/book/novel")public ResponseEntity query(@RequestParam(value = "name", required = false) String name,@RequestParam(value = "price", required = false) Integer price,@RequestParam(value = "gt_word_count", defaultValue = "0") Integer gtWordCount,@RequestParam(value = "lt_word_count", required = false) Integer ltWordCount) {BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();if (name != null) {boolQuery.must(QueryBuilders.matchQuery("name", name));}if (price != null) {boolQuery.must(QueryBuilders.matchQuery("price", price));}RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery("word_count").from(gtWordCount);if (ltWordCount != null && ltWordCount > 0) {rangeQuery.to(ltWordCount);}SearchResponse result = this.client.prepareSearch("book").setTypes("novel").setSearchType(SearchType.DFS_QUERY_THEN_FETCH).setQuery(boolQuery).setFrom(0).setSize(10).get();List<Map<String, Object>> list = new ArrayList<>();for (SearchHit hit : result.getHits()) {list.add(hit.getSourceAsMap());}return new ResponseEntity(list, HttpStatus.OK);}

?

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的Spring Boot集成Elastic Search的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲国产视频一区二区 | 日韩人妻无码一区二区三区99 | 全黄性性激高免费视频 | 日本在线精品视频 | 福利片av | 麻豆剧场 | 善良的女邻居在线观看 | 一级黄色片欧美 | 三上悠亚一区二区在线观看 | 欧美一区二区免费在线观看 | 亚洲黄色激情 | 亚洲欧美在线成人 | 精品日韩| 动漫av网| 亚洲一区国产精品 | 综合激情婷婷 | 国产精品久久久91 | 日韩av影片 | 色网址在线观看 | 无码精品国产一区二区三区免费 | xxxxxx黄色 | 中文字幕一区二区人妻痴汉电车 | 天堂在线中文资源 | 欧美人妻精品一区二区免费看 | 女人扒开腿免费视频app | 久久综合精品国产二区无码不卡 | 久久久影视 | 国产做爰xxxⅹ久久久精华液 | 雪花飘电影在线观看免费高清 | 国产又粗又猛又爽又黄又 | 久久综合热 | 免看一级片 | 高清福利视频 | 少妇被又大又粗又爽毛片久久黑人 | 五月激情六月 | 波多野结衣电影免费观看 | 国产伦精品一区二区三区视频网站 | 日本h片在线观看 | 亚洲AV无码乱码国产精品色欲 | 性久久久久久久 | 粉嫩aⅴ一区二区三区四区五区 | 九九爱国产 | 午夜在线观看免费视频 | 国产97色在线| 午夜在线播放视频 | 女人张开双腿让男人捅 | 欧美xxxx黑人又粗又长密月 | 国内av网| 超碰97在线资源站 | 可以免费观看的av网站 | 午夜久久电影 | 欧美熟妇精品一区二区蜜桃视频 | 欧美精品韩国精品 | 久久噜| 亚洲网站免费观看 | sao虎视频在线精品永久 | 国产精品3 | 日韩三级av在线 | 在线观看亚洲大片短视频 | www.com欧美 | 五号特工组之偷天换月 | 偷拍一区二区三区 | 中文字幕在线观看亚洲 | 少妇献身老头系列 | 色妞网站 | 成年人视频在线免费观看 | 91视频久久久 | 婷婷激情电影 | a天堂资源 | 亚洲黄色小视频 | 国产亚韩| 日韩污视频在线观看 | 总裁憋尿呻吟双腿大开憋尿 | 99成人在线视频 | 女人叉开腿让男人桶 | 日本一区视频在线观看 | 国产高潮又爽又无遮挡又免费 | 中文字幕在线视频播放 | 日韩欧美在线观看免费 | 久久视频精品在线 | 精品一区二区三区免费 | 久久精品国产亚洲av成人 | 里番acg★同人里番本子大全 | 亚洲av色区一区二区三区 | 国产免费aa | 久久艹久久 | 手机看片中文字幕 | 亚洲国产精品成人综合在线 | 国产在线无码精品 | 欧美大黄视频 | 亚洲午夜久久久久久久久久久 | 欧美日韩免费网站 | 四虎婷婷 | 免费精品在线观看 | 高清免费毛片 | 国产丝袜一区二区 | 深田咏美av在线 | 国产精品福利导航 | 成人勉费视频 |