在线观看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次閱讀
    主站蜘蛛池模板: 国产色秀视频在线观看 | 五月天婷婷免费观看视频在线 | 伊人久久大香线蕉电影院 | 欧美jizzhd精品欧美4k | 激情五月网站 | 精品伊人久久大香线蕉网站 | 天天躁夜夜躁狠狠躁2021西西 | 女色窝人体色77777 | 亚洲嫩草影院在线观看 | 黄色视网站| 国产看午夜精品理论片 | 失禁h啪肉尿出来高h健身房 | 鲁丝一区二区三区 | 欧美黄色片一级 | 午夜福利123 | 中日韩欧美在线观看 | 三级网站在线免费观看 | 国产秦先生大战白丝97在线 | 日本加勒比高清一本大道 | 天天插夜夜 | 国模私拍福利一区二区 | 免费污视频在线 | 国产三级网 | 最新版天堂中文在线官网 | 狠狠色婷婷丁香综合久久韩国 | 亚洲综合区图片小说区 | 久久久久久久国产 | 色视频免费 | 亚洲韩国日本欧美一区二区三区 | 色五月丁香五月综合五月 | 国产色视频网站免费观看 | 在线观看免费视频资源 | 日本xxxx色视频在线观看 | 全国男人的天堂网站 | 天堂网资源www | 国产黄视频网站 | 男人资源站 | 亚洲影院手机版777点击进入影院 | 三级毛片在线免费观看 | 1314亚洲人成网站在线观看 | 国产亚洲精品久久久久久牛牛 |