国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn)

這篇具有很好參考價(jià)值的文章主要介紹了Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

@Configuration

public class ElasticsearchConfiguration {

@Value(“${elasticsearch.host}”)

private String host;

@Value(“${elasticsearch.port}”)

private int port;

@Value(“${elasticsearch.connTimeout}”)

private int connTimeout;

@Value(“${elasticsearch.socketTimeout}”)

private int socketTimeout;

@Value(“${elasticsearch.connectionRequestTimeout}”)

private int connectionRequestTimeout;

@Bean(destroyMethod = “close”, name = “client”)

public RestHighLevelClient initRestClient() {

RestClientBuilder builder = RestClient.builder(new HttpHost(host, port))

.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder

.setConnectTimeout(connTimeout)

.setSocketTimeout(socketTimeout)

.setConnectionRequestTimeout(connectionRequestTimeout));

return new RestHighLevelClient(builder);

}

}

定義文檔實(shí)體類(lèi)

首先在?constant?包下定義常量接口,在接口中定義索引的名字為?user?:

public interface Constant {

String INDEX = “user”;

}

然后在?document?包下創(chuàng)建一個(gè)文檔實(shí)體類(lèi):

public class UserDocument {

private String id;

private String name;

private String sex;

private Integer age;

private String city;

// 省略 getter/setter

}

ES 基本操作

在這里主要介紹 ES 的索引、文檔、搜索相關(guān)的簡(jiǎn)單操作,在?service?包下創(chuàng)建?UserService類(lèi)。

索引操作

在這里演示創(chuàng)建索引和刪除索引:

創(chuàng)建索引

在創(chuàng)建索引的時(shí)候可以在?CreateIndexRequest?中設(shè)置索引名稱(chēng)、分片數(shù)、副本數(shù)以及 mappings,在這里索引名稱(chēng)為?user?,分片數(shù)?number_of_shards?為 1,副本數(shù)?number_of_replicas?為 0,具體代碼如下所示:

public boolean createUserIndex(String index) throws IOException {

CreateIndexRequest createIndexRequest = new CreateIndexRequest(index);

createIndexRequest.settings(Settings.builder()

.put(“index.number_of_shards”, 1)

.put(“index.number_of_replicas”, 0)

);

createIndexRequest.mapping(“{\n” +

" “properties”: {\n" +

" “city”: {\n" +

" “type”: “keyword”\n" +

" },\n" +

" “sex”: {\n" +

" “type”: “keyword”\n" +

" },\n" +

" “name”: {\n" +

" “type”: “keyword”\n" +

" },\n" +

" “id”: {\n" +

" “type”: “keyword”\n" +

" },\n" +

" “age”: {\n" +

" “type”: “integer”\n" +

" }\n" +

" }\n" +

“}”, XContentType.JSON);

CreateIndexResponse createIndexResponse = client.indices().create(createIndexRequest, RequestOptions.DEFAULT);

return createIndexResponse.isAcknowledged();

}

通過(guò)調(diào)用該方法,就可以創(chuàng)建一個(gè)索引?user?,索引信息如下:

Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn),程序員,spring boot,elasticsearch,jenkins

關(guān)于 ES 的 Mapping 可以看下這篇文章:?一文搞懂 Elasticsearch 之 Mapping

刪除索引

在?DeleteIndexRequest?中傳入索引名稱(chēng)就可以刪除索引,具體代碼如下所示:

public Boolean deleteUserIndex(String index) throws IOException {

DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest(index);

AcknowledgedResponse deleteIndexResponse = client.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);

return deleteIndexResponse.isAcknowledged();

}

介紹完索引的基本操作,下面介紹文檔的相關(guān)操作:

文檔操作

在這里演示下創(chuàng)建文檔、批量創(chuàng)建文檔、查看文檔、更新文檔以及刪除文檔:

創(chuàng)建文檔

創(chuàng)建文檔的時(shí)候需要在?IndexRequest?中指定索引名稱(chēng),?id?如果不傳的話(huà)會(huì)由 ES 自動(dòng)生成,然后傳入 source,具體代碼如下:

public Boolean createUserDocument(UserDocument document) throws Exception {

UUID uuid = UUID.randomUUID();

document.setId(uuid.toString());

IndexRequest indexRequest = new IndexRequest(Constant.INDEX)

.id(document.getId())

.source(JSON.toJSONString(document), XContentType.JSON);

IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT);

return indexResponse.status().equals(RestStatus.OK);

}

下面通過(guò)調(diào)用這個(gè)方法,創(chuàng)建兩個(gè)文檔,具體內(nèi)容如下:

Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn),程序員,spring boot,elasticsearch,jenkins

批量創(chuàng)建文檔

在一個(gè) REST 請(qǐng)求中,重新建立網(wǎng)絡(luò)開(kāi)銷(xiāo)是十分損耗性能的,因此 ES 提供 Bulk API,?支持在一次 API 調(diào)用中,對(duì)不同的索引進(jìn)行操作?,從而減少網(wǎng)絡(luò)傳輸開(kāi)銷(xiāo),提升寫(xiě)入速率。

下面方法是批量創(chuàng)建文檔,一個(gè)?BulkRequest?里可以添加多個(gè) Request,具體代碼如下:

public Boolean bulkCreateUserDocument(List documents) throws IOException {

BulkRequest bulkRequest = new BulkRequest();

for (UserDocument document : documents) {

String id = UUID.randomUUID().toString();

document.setId(id);

IndexRequest indexRequest = new IndexRequest(Constant.INDEX)

.id(id)

.source(JSON.toJSONString(document), XContentType.JSON);

bulkRequest.add(indexRequest);

}

BulkResponse bulkResponse = client.bulk(bulkRequest, RequestOptions.DEFAULT);

return bulkResponse.status().equals(RestStatus.OK);

}

下面通過(guò)該方法創(chuàng)建些文檔,便于下面的搜索演示。

查看文檔

查看文檔需要在?GetRequest?中傳入索引名稱(chēng)和文檔 id,具體代碼如下所示:

public UserDocument getUserDocument(String id) throws IOException {

GetRequest getRequest = new GetRequest(Constant.INDEX, id);

GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);

UserDocument result = new UserDocument();

if (getResponse.isExists()) {

String sourceAsString = getResponse.getSourceAsString();

result = JSON.parseObject(sourceAsString, UserDocument.class);

} else {

logger.error(“沒(méi)有找到該 id 的文檔”);

}

return result;

}

下面?zhèn)魅胛臋n id 調(diào)用該方法,結(jié)果如下所示:

Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn),程序員,spring boot,elasticsearch,jenkins

更新文檔

更新文檔則是先給?UpdateRequest?傳入索引名稱(chēng)和文檔 id,然后通過(guò)傳入新的 doc 來(lái)進(jìn)行更新,具體代碼如下:

public Boolean updateUserDocument(UserDocument document) throws Exception {

UserDocument resultDocument = getUserDocument(document.getId());

UpdateRequest updateRequest = new UpdateRequest(Constant.INDEX, resultDocument.getId());

updateRequest.doc(JSON.toJSONString(document), XContentType.JSON);

UpdateResponse updateResponse = client.update(updateRequest, RequestOptions.DEFAULT);

return updateResponse.status().equals(RestStatus.OK);

}

下面將文檔 id 為?9b8d9897-3352-4ef3-9636-afc6fce43b20?的文檔的城市信息改為?handan?,調(diào)用方法結(jié)果如下:

Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn),程序員,spring boot,elasticsearch,jenkins
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過(guò),也去過(guò)華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)Java工程師,想要提升技能,往往是自己摸索成長(zhǎng)或者是報(bào)班學(xué)習(xí),但對(duì)于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Java開(kāi)發(fā)全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn),程序員,spring boot,elasticsearch,jenkins

Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn),程序員,spring boot,elasticsearch,jenkins

Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn),程序員,spring boot,elasticsearch,jenkins

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Java開(kāi)發(fā)知識(shí)點(diǎn),真正體系化!

由于文件比較大,這里只是將部分目錄截圖出來(lái),每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!

如果你覺(jué)得這些內(nèi)容對(duì)你有幫助,可以?huà)叽a獲取?。。▊渥ava獲?。?/strong>

Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn),程序員,spring boot,elasticsearch,jenkins

總結(jié)

大型分布式系統(tǒng)猶如一個(gè)生命,系統(tǒng)中各個(gè)服務(wù)猶如骨骼,其中的數(shù)據(jù)猶如血液,而Kafka猶如經(jīng)絡(luò),串聯(lián)整個(gè)系統(tǒng)。這份Kafka源碼筆記通過(guò)大量的設(shè)計(jì)圖展示、代碼分析、示例分享,把Kafka的實(shí)現(xiàn)脈絡(luò)展示在讀者面前,幫助讀者更好地研讀Kafka代碼。

麻煩幫忙轉(zhuǎn)發(fā)一下這篇文章+關(guān)注我

Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn),程序員,spring boot,elasticsearch,jenkins

《一線大廠Java面試題解析+核心總結(jié)學(xué)習(xí)筆記+最新講解視頻+實(shí)戰(zhàn)項(xiàng)目源碼》點(diǎn)擊傳送門(mén)即可獲??!
可以?huà)叽a獲?。。。▊渥ava獲?。?*

Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn),程序員,spring boot,elasticsearch,jenkins

總結(jié)

大型分布式系統(tǒng)猶如一個(gè)生命,系統(tǒng)中各個(gè)服務(wù)猶如骨骼,其中的數(shù)據(jù)猶如血液,而Kafka猶如經(jīng)絡(luò),串聯(lián)整個(gè)系統(tǒng)。這份Kafka源碼筆記通過(guò)大量的設(shè)計(jì)圖展示、代碼分析、示例分享,把Kafka的實(shí)現(xiàn)脈絡(luò)展示在讀者面前,幫助讀者更好地研讀Kafka代碼。

麻煩幫忙轉(zhuǎn)發(fā)一下這篇文章+關(guān)注我

[外鏈圖片轉(zhuǎn)存中…(img-daf5pebx-1711815434669)]

《一線大廠Java面試題解析+核心總結(jié)學(xué)習(xí)筆記+最新講解視頻+實(shí)戰(zhàn)項(xiàng)目源碼》,點(diǎn)擊傳送門(mén)即可獲?。?/strong>文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-846035.html

到了這里,關(guān)于Spring Boot 集成 Elasticsearch 實(shí)戰(zhàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 《Spring Boot 實(shí)戰(zhàn)派》--13.集成NoSQL數(shù)據(jù)庫(kù),實(shí)現(xiàn)Elasticsearch和Solr搜索引擎

    《Spring Boot 實(shí)戰(zhàn)派》--13.集成NoSQL數(shù)據(jù)庫(kù),實(shí)現(xiàn)Elasticsearch和Solr搜索引擎

    ?????????關(guān)于搜索引擎 我們很難實(shí)現(xiàn) Elasticseach 和 Solr兩大搜索框架的效果;所以本章針對(duì)兩大搜索框架,非常詳細(xì)地講解 它們的原理和具體使用方法, 首先 介紹什么是搜索引擎 、如何用 MySQL實(shí)現(xiàn)簡(jiǎn)單的搜索引擎,以及Elasticseach 的 概念和接口類(lèi); 然后介紹Elasticseach

    2023年04月09日
    瀏覽(25)
  • 黑馬程序員--分布式搜索ElasticSearch學(xué)習(xí)筆記

    黑馬程序員--分布式搜索ElasticSearch學(xué)習(xí)筆記

    黑馬視頻地址:https://www.bilibili.com/video/BV1LQ4y127n4/ 想獲得最佳的閱讀體驗(yàn),請(qǐng)移步至我的個(gè)人博客 SpringCloud學(xué)習(xí)筆記 消息隊(duì)列MQ學(xué)習(xí)筆記 Docker學(xué)習(xí)筆記 分布式搜索ElasticSearch學(xué)習(xí)筆記 ElasticSearch的作用 ElasticSearch 是一款非常強(qiáng)大的開(kāi)源搜素引擎,具備非常強(qiáng)大的功能,可以幫

    2024年02月04日
    瀏覽(21)
  • 10、全文檢索 -- Elasticsearch -- 介紹、下載,42歲程序員面試

    10、全文檢索 -- Elasticsearch -- 介紹、下載,42歲程序員面試

    目錄 全文檢索 – Elasticsearch – 介紹、下載、安裝、配置、開(kāi)啟安全機(jī)制、設(shè)置用戶(hù)密碼、為 Elasticsearch 啟用 SSL 和 HTTPS 支持 Elasticsearch 介紹 官網(wǎng)下載 Elasticsearch 安裝 Elasticsearch 1、bin 目錄介紹 2、配置環(huán)境變量 3、修改配置文件 4、啟動(dòng) Elasticsearch 5、查看 Elasticsearch 啟動(dòng)結(jié)果

    2024年04月26日
    瀏覽(54)
  • Python黑馬程序員(Spark實(shí)戰(zhàn))筆記

    Python黑馬程序員(Spark實(shí)戰(zhàn))筆記

    ?pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark 注意:字符串返回的是[\\\'a\\\',\\\'b\\\',\\\'c\\\',\\\'d\\\',\\\'e\\\',\\\'f\\\',\\\'g\\\']? ?字典返回的是[\\\'key1\\\',\\\'key2\\\']?? 讀取hello.txt的內(nèi)容: 注意: 如果沒(méi)有添加上行代碼程序會(huì)報(bào)出錯(cuò)誤! Caused by: org.apache.spark.SparkException: Python worker failed to connect back. ?解釋器的位置

    2024年02月05日
    瀏覽(97)
  • 【黑馬程序員】C++核心功能項(xiàng)目實(shí)戰(zhàn)

    【黑馬程序員】C++核心功能項(xiàng)目實(shí)戰(zhàn)

    20240221 本教程主要利用C++來(lái)實(shí)現(xiàn)一個(gè)基于多態(tài)的職工管理系統(tǒng) 構(gòu)成 普通員工 經(jīng)理 老板 員工顯示 需要顯示職工編號(hào)、職工姓名、職工崗位以及職責(zé) 不同員工職責(zé) 責(zé)普通員工職責(zé):完成經(jīng)理交給的任務(wù) 經(jīng)理職責(zé):完成老板交給的任務(wù),并下發(fā)任務(wù)給員工 老板職責(zé):管理公司所有

    2024年02月22日
    瀏覽(17)
  • 《黑馬程序員2023新版黑馬程序員大數(shù)據(jù)入門(mén)到實(shí)戰(zhàn)教程,大數(shù)據(jù)開(kāi)發(fā)必會(huì)的Hadoop、Hive,云平臺(tái)實(shí)戰(zhàn)項(xiàng)目》學(xué)習(xí)筆記總目錄

    本文是對(duì)《黑馬程序員新版大數(shù)據(jù)入門(mén)到實(shí)戰(zhàn)教程》所有知識(shí)點(diǎn)的筆記進(jìn)行總結(jié)分類(lèi)。 學(xué)習(xí)視頻:黑馬程序員新版大數(shù)據(jù) 學(xué)習(xí)時(shí)總結(jié)的學(xué)習(xí)筆記以及思維導(dǎo)圖會(huì)在后續(xù)更新,請(qǐng)敬請(qǐng)期待。 前言:配置三臺(tái)虛擬機(jī),為集群做準(zhǔn)備(該篇章請(qǐng)到原視頻進(jìn)行觀看,不在文章內(nèi)詳細(xì)

    2024年02月03日
    瀏覽(101)
  • 推薦一個(gè)免費(fèi)的集成ChatGPT的代碼編輯器,程序員寫(xiě)代碼將被顛覆

    推薦一個(gè)免費(fèi)的集成ChatGPT的代碼編輯器,程序員寫(xiě)代碼將被顛覆

    上周, Open AI 團(tuán)隊(duì)正式宣布: GPT-4 來(lái)了! GPT-4 的出現(xiàn),隨后 Microsoft 的多個(gè)產(chǎn)品就集成了 GPT-4 。緊接著基于 Open AI 公司發(fā)布的 GPT-4 編寫(xiě)、編輯和討論代碼新一代編輯器 Cursor 的出現(xiàn)。 Cursor是一款獨(dú)立的應(yīng)用。從界面來(lái)看,很簡(jiǎn)陋。但它強(qiáng)大的功能是可以更加智能的輔助編程

    2023年04月09日
    瀏覽(30)
  • GPT引領(lǐng)學(xué)習(xí)之旅:適應(yīng)不同級(jí)別程序員的Elasticsearch學(xué)習(xí)案例

    在本文中,我們將為初級(jí)、中級(jí)和高級(jí)程序員分別提供一個(gè)Elasticsearch學(xué)習(xí)案例,展示如何利用GPT進(jìn)行針對(duì)性學(xué)習(xí)。 假設(shè)您是一名初級(jí)程序員,想要在自己的個(gè)人博客中集成Elasticsearch搜索引擎,以下是學(xué)習(xí)和實(shí)踐的過(guò)程: 學(xué)習(xí)目標(biāo):了解Elasticsearch基本概念、安裝配置、數(shù)據(jù)

    2023年04月24日
    瀏覽(20)
  • GPT引領(lǐng)學(xué)習(xí)之旅:彌補(bǔ)信息差,助力程序員高效掌握Elasticsearch

    Elasticsearch作為一款流行的開(kāi)源搜索和分析引擎,持續(xù)迅速發(fā)展,隨著版本的更新,功能和特性也在不斷變化。GPT雖然具備大量的計(jì)算機(jī)科學(xué)、編程語(yǔ)言和工具相關(guān)的知識(shí),但其知識(shí)截止于2021年。為了彌補(bǔ)GPT與實(shí)際情況之間的信息差,我們可以采取以下策略,將GPT與實(shí)際情況

    2024年02月02日
    瀏覽(32)
  • Android相機(jī)開(kāi)發(fā)實(shí)戰(zhàn),Android程序員必看

    Android相機(jī)開(kāi)發(fā)實(shí)戰(zhàn),Android程序員必看

    由于需求不同,所以選擇的方案固然也不同,至于第二種調(diào)用系統(tǒng)相機(jī),這里就不過(guò)多講解了,使用Intent對(duì)象設(shè)置一個(gè)Action動(dòng)作即可,跳轉(zhuǎn)時(shí)使用startActivityForResult,然后在onActivityResult處理相關(guān)數(shù)據(jù)便可,關(guān)鍵代碼: intent.setAction(“android.media.action.STILL_IMAGE_CAMERA”); 至于使用

    2024年04月15日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包