色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    2974

    瀏覽量

    104968
  • 鏡像
    +關注

    關注

    0

    文章

    170

    瀏覽量

    10775
  • Elasticsearch
    +關注

    關注

    0

    文章

    30

    瀏覽量

    2847

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

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

收藏 人收藏

    評論

    相關推薦

    Windows安裝ElasticSearch

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

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

    基于EPM240T100C5的CPLD開發保姆環境搭建教程
    的頭像 發表于 06-09 19:35 ?6442次閱讀
    基于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 ?2363次閱讀
    <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 ?2496次閱讀

    Elasticsearch入門簡介

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

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

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

    SpringBoot 連接ElasticSearch的使用方式

    在上篇 ElasticSearch 文章中,我們詳細的介紹了 ElasticSearch 的各種 api 使用。 實際的項目開發過程中,我們通常基于某些主流框架平臺進行技術開發,比如
    的頭像 發表于 10-09 10:35 ?1174次閱讀
    主站蜘蛛池模板: 永久免费看mv网站入口 | 美女裸露100%奶头视频 | 亚洲欧美强伦一区二区另类 | 99精品小视频| 国产精品无码亚洲区艳妇 | 亚洲福利视频导航 | 国产一区内射最近更新 | 男污女XO猛烈的动态图 | 花蝴蝶在线直播观看 | 一道本无吗d d在线播放 | 亚洲国产精品99久久久久久 | 97无码人妻精品1国产精东影业 | 99国产热视频在线观看 | 99久久国产露脸精品麻豆 | 国产在线观看成人免费视频 | 久久久精品免费免费直播 | 欧美精品一区二区三区视频 | 亚洲欧洲日产国产 最新 | 性盈盈剧场 | 伊人网站在线 | 亚洲午夜福利未满十八勿进 | 啊片色播电影 | 国产成人无码精品久久久影院 | 成人区在线观看免费视频 | 国产精品www视频免费看 | 国产精品成人不卡在线观看 | 免费看午夜高清性色生活片 | 亚洲国产AV精品一区二区蜜芽 | 一二三四在线播放免费观看中文版视频 | 亚洲第一免费播放区 | 国产亚洲精品精品精品 | 99久久免费只有精品 | 中字幕久久久人妻熟女天美传媒 | 泰国淫乐园实录 | 看电影就来5566先锋av | 韩国免费啪啪漫画无遮拦健身教练 | 蜜芽一二三区 | 嫩草视频在线观看免费 | 国产午夜精品理论片久久影视 | 青青草原社区 | 久久久精品久久久久三级 |