在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Elasticsearch保姆級入門

jf_ro2CN3Fa ? 來源:勇哥java實戰分享 ? 2023-09-01 15:24 ? 次閱讀

Elasticsearch 是一個分布式的、面向生產規模工作負載優化的搜索引擎。

Kibana 可以將 Elasticsearch 中的數據轉化為直觀的圖表、圖形和儀表盤。

這篇文章,您將學習本地安裝 Elasticsearch 和 Kibana,以及使用開發工具/ Java SDK 創建索引和搜索數據。

1 本地安裝

1.1 創建網絡

我們需要創建一個供 Elasticsearch 和 Kibana 使用的 network。這個 network 將被用于 Elasticsearch 和 Kibana 之間的通信

dockernetworkcreateelastic

1.2 安裝 ES

拉取 Elasticsearch 鏡像

dockerpulldocker.elastic.co/elasticsearch/elasticsearch:{version}

這里的版本 version ,我們選取:8.9.0

dockerpulldocker.elastic.co/elasticsearch/elasticsearch:8.9.0

啟動 docker elasticsearch 鏡像

dockerrun--nameelasticsearch--netelastic-p9200:9200-p9300:9300-e"discovery.type=single-node"-tdocker.elastic.co/elasticsearch/elasticsearch:8.9.0

進入ES容器,修改 elasticsearch 用戶密碼

bin/elasticsearch-reset-password--usernameelastic-i

1.3 安裝 Kibana

拉取 Kibana 鏡像

dockerpulldocker.elastic.co/kibana/kibana:8.9.0

啟動 Kibana 鏡像

dockerrun--namekibana--netelastic-p5601:5601docker.elastic.co/kibana/kibana:8.9.0

因為啟動安裝 Kibana ,需要 token , 所以進入 elasticsearch 容器 ,執行:

bin/elasticsearch-create-enrollment-token-skibana
372f5f18-47c2-11ee-97a6-92fbcf53809c.png

輸入 token 之后,刷新頁面,進入登錄頁面:

37432e62-47c2-11ee-97a6-92fbcf53809c.png

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 視頻教程:https://doc.iocoder.cn/video/

2 接口測試

我們可以使用 Kibana Dev tools 來進行接口測試。

2.1 添加

向索引添加單個文檔,提交一個 HTTP POST 請求,目標是該索引。

POST/customer/_doc/1
{
"firstname":"Jennifer",
"lastname":"Walters"
}
37547c4e-47c2-11ee-97a6-92fbcf53809c.png

該請求會自動創建名為customer的索引(如果不存在),然后添加一個 ID 為 1的新文檔,同時存儲并建立firstnamelastname字段的索引。

新文檔可以立即從集群中的任何節點獲取。您可以使用 GET 請求來檢索它,請求中需指定其文檔 ID :

GET/customer/_doc/1
3766fc0c-47c2-11ee-97a6-92fbcf53809c.png

要一次性添加多個文檔,請使用 _bulk API。批量數據必須是以換行分隔的 JSON(NDJSON)格式。每一行必須以換行字符( )結尾,包括最后一行。

PUTcustomer/_bulk
{"create":{}}
{"firstname":"Monica","lastname":"Rambeau"}
{"create":{}}
{"firstname":"Carol","lastname":"Danvers"}
{"create":{}}
{"firstname":"Wanda","lastname":"Maximoff"}
{"create":{}}
{"firstname":"Jennifer","lastname":"Takeda"}
37820f92-47c2-11ee-97a6-92fbcf53809c.png

2.2 搜索

已索引的文檔可以在準實時的情況下進行搜索。下面的搜索將在customer索引中匹配所有名為 Jennifer 的顧客。

GETcustomer/_search
{
"query":{
"match":{"firstname":"Jennifer"}
}
}
37ba8aac-47c2-11ee-97a6-92fbcf53809c.png

2.3 視圖

進入 Kibana Data Views :

37d9741c-47c2-11ee-97a6-92fbcf53809c.png

然后創建數據視圖 :

37e989a6-47c2-11ee-97a6-92fbcf53809c.png

創建數據視圖之后,可以在 Analytics > Discover 查看索引數據。

37fc857e-47c2-11ee-97a6-92fbcf53809c.png

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/yudao-cloud
  • 視頻教程:https://doc.iocoder.cn/video/

3 Java SDK 實戰

3.1 依賴

<dependency>
<groupId>co.elastic.clientsgroupId>
<artifactId>elasticsearch-javaartifactId>
<version>8.9.0version>
dependency>

<dependency>
<groupId>io.github.hakky54groupId>
<artifactId>sslcontext-kickstartartifactId>
<version>7.1.0version>
dependency>

<dependency>
<groupId>com.fasterxml.jackson.coregroupId>
<artifactId>jackson-databindartifactId>
<version>2.12.3version>
dependency>

<dependency>
<groupId>com.fasterxml.jackson.coregroupId>
<artifactId>jackson-coreartifactId>
<version>2.12.3version>
dependency>

<dependency>
<groupId>com.fasterxml.jackson.coregroupId>
<artifactId>jackson-annotationsartifactId>
<version>2.12.3version>
dependency>

<dependency>
<groupId>jakarta.jsongroupId>
<artifactId>jakarta.json-apiartifactId>
<version>2.0.1version>
dependency>


<dependency>
<groupId>org.elasticsearch.clientgroupId>
<artifactId>elasticsearch-rest-clientartifactId>
<version>8.9.0version>
dependency>

3.2 創建客戶端

1、通過用戶名和密碼創建客戶端

RestClientBuilderbuilder=RestClient.builder(newHttpHost("localhost",9200,"https"));

finalCredentialsProvidercredentialsProvider=newBasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,newUsernamePasswordCredentials("elastic","ilxw@19841201"));

// Elasticsearch 提供了 Https 服務,創建 client 建立 SSL 鏈接時沒有做證書驗證;
SSLFactorysslFactory=SSLFactory.builder().withUnsafeTrustMaterial().withUnsafeHostnameVerifier().build();
builder=builder.setHttpClientConfigCallback(
httpClientBuilder->httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider)
setSSLContext(sslFactory.getSslContext())
.setSSLHostnameVerifier(sslFactory.getHostnameVerifier())
);

RestClientrestClient=builder.build();

//CreatethetransportwithaJacksonmapper
ElasticsearchTransporttransport=newRestClientTransport(restClient,newJacksonJsonpMapper());

//AndcreatetheAPIclient
ElasticsearchClientesClient=newElasticsearchClient(transport);

2、通過 apikey 創建客戶端

我們在安全目錄的管理頁面,創建 API key ,如下圖:

381cbc36-47c2-11ee-97a6-92fbcf53809c.png

示例代碼如下:

//自己創建的apikey
StringapiKey="cnRVUy1Ja0JZYUtuSTRuMG1oRkk6RVFSdTk2T2NRb1cyYVdLRTB4TjktQQ==";

RestClientBuilderbuilder=RestClient.builder(newHttpHost("localhost",9200,"https"));

SSLFactorysslFactory=SSLFactory.builder().withUnsafeTrustMaterial().withUnsafeHostnameVerifier().build();

RestClientrestClient=builder.setDefaultHeaders(newHeader[]{newBasicHeader("Authorization","ApiKey"+apiKey)}).setHttpClientConfigCallback(httpClientBuilder->httpClientBuilder.setSSLContext(sslFactory.getSslContext()).setSSLHostnameVerifier(sslFactory.getHostnameVerifier())).build();

//CreatethetransportwithaJacksonmapper
ElasticsearchTransporttransport=newRestClientTransport(restClient,newJacksonJsonpMapper());

//AndcreatetheAPIclient
ElasticsearchClientesClient=newElasticsearchClient(transport);

3.3 創建文檔

創建索引名為 products ,新建一個文檔 id 為 1 。

ProductPoproduct=newProductPo(1,"Bag",42);

IndexRequestindexRequest=newIndexRequest.Builder<>().index("products").id(String.valueOf(product.getId())).document(product).build();

IndexResponseresponse=esClient.index(indexRequest);

System.out.println("Indexedwithversion"+response.version());

			38378fe8-47c2-11ee-97a6-92fbcf53809c.png

3.4 查詢文檔

GetResponseresponse=esClient.get(g->g
.index("products")
.id(String.valueOf(1)),
ProductPo.class
);

if(response.found()){
ProductPoproduct=response.source();
System.out.println("Productname"+product.getName());
}else{
System.out.println("Productnotfound");
}

3.5 修改文檔

Mapdoc=newHashMap();
//文檔產品名稱調整為mybike
doc.put("name","mybike");
doc.put("price",100);

BulkOperationop=newBulkOperation.Builder().update(
i->i.action(newUpdateAction.Builder<>().doc(doc).docAsUpsert(true).build()).id("1"))
.build();

Listlist=Collections.singletonList(op);
BulkResponseresponse=esClient.bulk(bulkBuilder->bulkBuilder.index("products").operations(list));

3.6 刪除文檔

esClient.delete(d->d.index("products").id("1"));

參考文檔:

1、Elasticsearch 官方文檔:

https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/getting-started-java.html

2、Github文檔

https://github.com/elastic/elasticsearch


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    19

    文章

    2970

    瀏覽量

    104798
  • 鏡像
    +關注

    關注

    0

    文章

    165

    瀏覽量

    10751
  • Elasticsearch
    +關注

    關注

    0

    文章

    29

    瀏覽量

    2842

原文標題:肝了兩小時的 Elasticsearch 保姆級入門

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Windows安裝ElasticSearch

    Windows安裝ElasticSearch
    的頭像 發表于 02-15 17:09 ?997次閱讀
    Windows安裝<b class='flag-5'>ElasticSearch</b>

    基于EPM240T100C5的CPLD開發保姆環境搭建教程

    基于EPM240T100C5的CPLD開發保姆環境搭建教程
    的頭像 發表于 06-09 19:35 ?6286次閱讀
    基于EPM240T100C5的CPLD開發<b class='flag-5'>保姆</b><b class='flag-5'>級</b>環境搭建教程

    linux安裝配置ElasticSearch之源碼安裝

    ElasticSearch是基于Lucene這個非常成熟的索引方案,另加上一些分布式的實現:集群,sharding,replication等。以下是對其采用源碼安裝的方法1.下載
    發表于 01-11 17:27

    ElasticSearch的詞條查詢

    ElasticSearch查詢 第三篇:詞條查詢
    發表于 04-30 17:03

    docker安裝Elasticsearch操作指南

    docker安裝Elasticsearch以及分詞器
    發表于 09-16 16:53

    ElasticSearch的初步環境

    ElasticSearch最實用入門指南——初步環境
    發表于 03-31 11:32

    STM32HAL庫硬件I2C如何驅動INA226保姆

    STM32HAL庫硬件I2C如何驅動INA226保姆
    發表于 02-07 06:35

    elasticsearch介紹PPT

    elasticsearch介紹PPT
    發表于 12-13 21:05 ?20次下載

    Spring-Elasticsearch插件說明

    Spring-Elasticsearch插件說明
    發表于 12-13 21:05 ?0次下載

    ElasticSearch的必備知識:從入門、索引管理到映射詳解

    本文介紹了ElasticSearch的必備知識:從入門、索引管理到映射詳解。 一、快速入門 1.查看集群的健康狀況 http://localhost:9200/_cat http
    的頭像 發表于 09-25 10:44 ?2333次閱讀
    <b class='flag-5'>ElasticSearch</b>的必備知識:從<b class='flag-5'>入門</b>、索引管理到映射詳解

    Elasticsearch6.1教程

    Elasticsearch6.1教程
    發表于 07-04 14:40 ?0次下載

    ElasticSearch是什么?應用場景是什么?

    ElasticSearch是什么 ElasticSearch的功能 ElasticSearch的應用場景 ElasticSearch的特點
    的頭像 發表于 10-09 18:38 ?2465次閱讀

    Elasticsearch入門簡介

    Elasticsearch(后續簡稱ES) 是一個實時的分布式存儲、搜索、分析的引擎。
    的頭像 發表于 02-24 09:44 ?682次閱讀

    保姆的OpenHarmony創新賽賦能直播課程來了!

    操演練 幫助開發者在比賽中提升競爭力 為闖關加碼 本期為萌新入門的班級課程 與你分享RK3568編譯和語言的魅力 周四19:00 直播間不見不散! 原文標題:保姆的OpenHarmony創新賽賦能
    的頭像 發表于 07-11 21:05 ?423次閱讀
    <b class='flag-5'>保姆</b><b class='flag-5'>級</b>的OpenHarmony創新賽賦能直播課程來了!

    SpringBoot 連接ElasticSearch的使用方式

    在上篇 ElasticSearch 文章中,我們詳細的介紹了 ElasticSearch 的各種 api 使用。 實際的項目開發過程中,我們通常基于某些主流框架平臺進行技術開發,比如
    的頭像 發表于 10-09 10:35 ?1126次閱讀
    主站蜘蛛池模板: 亚洲偷偷| 午夜色站| 亚洲资源在线观看| xxxxxhd69日本护士| 69日本xxxxxxxxx内谢| 亚洲卡5卡6卡7国色天香| 男女免费视频| 中国美女毛片| 天天摸天天做天天爽| 色黄污在线看黄污免费看黄污| 色多多视频在线播放| 美女网站色在线观看| 国产福利网站| 午夜 在线播放| 国产亚洲欧美成人久久片| 欧美男人天堂网| 流不尽奶水的大乳h| 亚色成人| 欧美日a| 国产精品久久久久久久久免费hd| 亚洲第一区视频在线观看| 欧美肥胖女人bbwbbw视频| 我不卡老子影院午夜伦我不卡四虎| 亚洲视屏一区| 网友偷自拍原创区| 免费国产成人α片| 97色偷偷| 成人在线黄色| 国产精品久久久久久一级毛片| 四虎影院视频| 国模视频在线| 色综合免费视频| 成人免费播放视频777777| 综合色爱| 免费观看色| 五月国产综合视频在线观看| 99草在线视频| 夜夜春色| 精品久久久久久婷婷| 亚洲va欧美va国产综合久久| 成人午夜小视频手机在线看 |