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

Elasticsearch、Kibana以及Java操作ES 的快速使用

這篇具有很好參考價(jià)值的文章主要介紹了Elasticsearch、Kibana以及Java操作ES 的快速使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

docker 安裝elastic search 、 kibana(可視化管理elastic search)

docker pull elasticsearch:7.12.1
docker pull kibana:7.12.1

?

創(chuàng)建docker自定義網(wǎng)絡(luò)

docker自定義網(wǎng)絡(luò)可以使得容器之間使用容器名網(wǎng)絡(luò)互連,默認(rèn)的網(wǎng)絡(luò)不會(huì)有這功能。
一定要配置自定義網(wǎng)絡(luò),并將兩個(gè)容器同時(shí)加到網(wǎng)絡(luò)中,否則下面的http://es:9200會(huì)無(wú)法訪問到es

docker network create es-net

?

啟動(dòng)elastic search、kibana容器

啟動(dòng)elastic search容器
docker run -d \
	--name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/usr/share/elasticsearch/data \
    -v es-plugins:/usr/share/elasticsearch/plugins \
    --privileged \
    --network es-net \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:7.12.1

訪問 http://192.168.137.139:9200 (注意換成自己服務(wù)器的ip地址)
Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana

啟動(dòng)kibana容器
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601  \
kibana:7.12.1

訪問 http://192.168.137.139:5601 (注意換成自己服務(wù)器的ip地址)
Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana
?

給es安裝 ik分詞器

默認(rèn)的分詞器對(duì)中文并不友好,ik分詞器可以更好的支持中文分詞
下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.12.1
(官方有其他的下載方式,可以參考:https://github.com/medcl/elasticsearch-analysis-ik)
Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana

 查看es-plugins的掛載卷所在目錄
docker volume inspect es-plugins

得到 /var/lib/docker/volumes/es-plugins/_data

將下載的文件解壓縮并傳到服務(wù)器掛在卷中
scp -r ik myserver:/var/lib/docker/volumes/es-plugins/_data

Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana

重啟es服務(wù)
docker restart es

ocker logs es | grep ik	# 查看ik分詞器是否成功加載

Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana
使用Dev Tools測(cè)試
Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana

IK分詞器包含兩種模式:(根據(jù)業(yè)務(wù)選擇)

  • ik_smart:最少切分

  • ik_max_word:最細(xì)切分

擴(kuò)展ik分詞器的詞典

Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana
奧里給并沒有組成一個(gè)詞

cd /var/lib/docker/volumes/es-plugins/_data/ik/config/

oligei.dic文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
	<comment>IK Analyzer 擴(kuò)展配置</comment>
	<!--用戶可以在這里配置自己的擴(kuò)展字典 -->
	<entry key="ext_dict"></entry>
    <entry key="ext_dict">my_dict.dic</entry>

	<!--用戶可以在這里配置自己的擴(kuò)展停止詞字典-->
	<entry key="ext_stopwords"></entry>
    <entry key="ext_stopwords">my_stopwords.dic</entry>

	<!--用戶可以在這里配置遠(yuǎn)程擴(kuò)展字典 -->
    <!-- <entry key="remote_ext_dict">words_location</entry> -->

	<!--用戶可以在這里配置遠(yuǎn)程擴(kuò)展停止詞字典-->
    <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
重啟es 和 kibana
docker restart es
docker restart kibana

ocker logs es | grep my_ # 查看日志是否加載了配置

Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana
Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana

?


?

es 索引庫(kù)操作

創(chuàng)建索引庫(kù)

PUT /user 
{
  "mappings": {
    "properties": {
      "info": {
        "type": "text",
        "analyzer": "ik_smart"
      },
      "email": {
        "type": "keyword",
        "index": "false"
      },
      "name": {
        "type": "object",
        "properties": {
          "fistName": {
            "type": "keyword"
          },
          "lastName": {
            "type": "keyword"
          }
        }
      }
    }
  }
}

刪除索引庫(kù)

DELETE /user

修改索引庫(kù)

索引庫(kù)不支持修改已有的屬性,但可以增加屬性

PUT /user/_mapping
{
  "properties": {
    "age": {
      "type": "integer"
    }
  }
}

查詢索引庫(kù)

GET /user

?


?

es 文檔操作

新增文檔

POST /user/_doc/1
{
  "info": "學(xué)習(xí)使我快樂",
  "email": "xxx@qq.com",
  "age": "18",
  "name": {
    "firstName": "code",
    "lastName": "horse"
  }
}

刪除文檔

DELETE /user/_doc/1

修改文檔

全量修改:先刪除,后新建(如果沒有,也會(huì)新建)

PUT /user/_doc/1
{
  "info": "學(xué)習(xí)使我快樂222222222222222",
  "email": "xxx@qq.com",
  "age": "18",
  "name": {
    "firstName": "code",
    "lastName": "horse"
  }
}

增量修改:只修改指定字段的值

POST /user/_update/1
{
  "doc": {
    "info": "學(xué)習(xí)使我快樂333333333333"
  }
}

查詢文檔

GET /user/_doc/1

?


?

Java使用ES (RestAPI)

官方使用文檔:https://www.elastic.co/guide/en/elasticsearch/client/index.html
Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana
本教程使用的是 Migrating from the High Level Rest Client

導(dǎo)入依賴

pom.xml


<!--FastJson  官方需要的other dependencies-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.71</version>
</dependency>

springboot依賴管理有可能會(huì)給你導(dǎo)入的依賴版本會(huì)給覆蓋掉
Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana
解決方案:覆蓋springboot的版本

<properties>
    <elasticsearch.version>7.12.1</elasticsearch.version>
</properties>

Elasticsearch、Kibana以及Java操作ES 的快速使用,微服務(wù),elasticsearch,java,kibana

操作索引庫(kù)

IndexDatabaseTest.java
public class IndexDatabaseTest {
    private RestHighLevelClient client;

    @BeforeEach
    public void setUp() {  // 創(chuàng)建es連接
        this.client = new RestHighLevelClient(RestClient.builder(
                HttpHost.create("http://192.168.137.139:9200")
        ));
    }

    @Test
    public void clientStatus() {    // 查看是否連接成功
        System.out.println(client);
    }

    // 創(chuàng)建索引庫(kù)
    @Test
    public void createIndexDataBase() throws IOException {
        CreateIndexRequest request = new CreateIndexRequest("user");
        String createIndexDataBaseDSL = "{\n" +
                "  \"mappings\": {\n" +
                "    \"properties\": {\n" +
                "      \"info\": {\n" +
                "        \"type\": \"text\",\n" +
                "        \"analyzer\": \"ik_smart\"\n" +
                "      },\n" +
                "      \"email\": {\n" +
                "        \"type\": \"keyword\",\n" +
                "        \"index\": \"false\"\n" +
                "      },\n" +
                "      \"name\": {\n" +
                "        \"type\": \"object\",\n" +
                "        \"properties\": {\n" +
                "          \"fistName\": {\n" +
                "            \"type\": \"keyword\"\n" +
                "          },\n" +
                "          \"lastName\": {\n" +
                "            \"type\": \"keyword\"\n" +
                "          }\n" +
                "        }\n" +
                "      }\n" +
                "    }\n" +
                "  }\n" +
                "}";
        request.source(createIndexDataBaseDSL, XContentType.JSON);
        client.indices().create(request, RequestOptions.DEFAULT);
    }

    // 刪除索引庫(kù)
    @Test
    public void deleteIndexDataBase() throws IOException {
        DeleteIndexRequest request = new DeleteIndexRequest("user");
        client.indices().delete(request, RequestOptions.DEFAULT);
    }

    // 修改索引庫(kù)(只支持增加mapping)
    @Test
    public void updateIndexDataBase() throws IOException {
        PutMappingRequest request = new PutMappingRequest("user");
        request.source("{\n" +
                "  \"properties\": {\n" +
                "    \"age\": {\n" +
                "      \"type\": \"integer\"\n" +
                "    }\n" +
                "  }\n" +
                "}\n", XContentType.JSON);
        client.indices().putMapping(request, RequestOptions.DEFAULT);
    }

    // 查找索引庫(kù)
    @Test
    public void getIndexDataBase() throws IOException {
        GetIndexRequest request = new GetIndexRequest("user");
        GetIndexResponse getIndexResponse = client.indices().get(request, RequestOptions.DEFAULT);

        Map<String, MappingMetadata> mappings = getIndexResponse.getMappings();
        System.out.println(mappings.get("user").sourceAsMap().values());
    }


    @AfterEach
    public void unMount() throws IOException { 	// 斷開es連接
        this.client.close();
    }

}

?文章來源地址http://www.zghlxwxcb.cn/news/detail-697487.html

操作文檔

DocTest.java
public class DocTest {
    private RestHighLevelClient client;

    @BeforeEach
    void setUp() {  // 創(chuàng)建es連接
        this.client = new RestHighLevelClient(RestClient.builder(
                HttpHost.create("http://192.168.137.139:9200")
        ));
    }

    @Test
    public void clientStatus() {    // 查看是否連接成功
        System.out.println(client);
    }

    // 創(chuàng)建文檔
    @Test
    public void createIndexDataBase() throws IOException {
        IndexRequest request = new IndexRequest("user").id("1");
        String createDocDSL = "{\n" +
                "  \"info\": \"學(xué)習(xí)使我快樂\",\n" +
                "  \"email\": \"xxx@qq.com\",\n" +
                "  \"name\": {\n" +
                "    \"firstName\": \"code\",\n" +
                "    \"lastName\": \"horse\"\n" +
                "  }\n" +
                "}";
        request.source(createDocDSL,XContentType.JSON);
        client.index(request, RequestOptions.DEFAULT);
    }

    // 刪除文檔
    @Test
    public void deleteIndexDataBase() throws IOException {
        DeleteRequest request = new DeleteRequest("user", "1");
        client.delete(request, RequestOptions.DEFAULT);
    }

    // 修改文檔 (API實(shí)現(xiàn)的是全量修改)
    @Test
    public void updateIndexDataBase() throws IOException {
        UpdateRequest request = new UpdateRequest("user", "1");
        request.doc("{\n" +
                "    \"info\": \"學(xué)習(xí)使我痛苦?。。。。。?!\"\n" +
                "  }", XContentType.JSON);
        client.update(request, RequestOptions.DEFAULT);
    }

    // 查找文檔
    @Test
    public void getIndexDataBase() throws IOException {
        GetRequest request = new GetRequest("user", "1");
        GetResponse response = client.get(request, RequestOptions.DEFAULT);

        String json = response.getSourceAsString();
        System.out.println(json);
    }

    @Test
    private Map<String, Object> getData(String text) {
        Map<String, Object> map = new HashMap<>();
        map.put("info", text);
        map.put("email", text + "@qq.com");
        Map<String, String> name = new HashMap<>();
        name.put("firstName", text);
        name.put("lastName", text);
        map.put("name", name);
        System.out.println(JSON.toJSONString(map));
        return map;
    }

    // 批量導(dǎo)入文檔
    @Test
    public void testBulk() throws IOException {
        BulkRequest request = new BulkRequest();
        for (int i = 1; i <= 200; i ++ ) {
            String text = String.valueOf(i);
            Map<String, Object> data = getData(text);
            request.add(new IndexRequest("user")
                    .id(text)
                    .source(JSON.toJSONString(data), XContentType.JSON)
            );
        }
        client.bulk(request, RequestOptions.DEFAULT);
    }

    @AfterEach
    public void unMount() throws IOException { // 斷開es連接
        this.client.close();
    }
}

到了這里,關(guān)于Elasticsearch、Kibana以及Java操作ES 的快速使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(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)文章

  • Docker安裝ElasticSearch、Kibana、IK分詞器以及設(shè)置ES賬戶密碼

    Docker安裝ElasticSearch、Kibana、IK分詞器以及設(shè)置ES賬戶密碼

    版本聲明: 系統(tǒng) :CentOS 7.9(云服務(wù)器) ES版本 :7.6.1 Kibana :7.6.1 Ik分析器版本 :7.6.1 1、拉取鏡像 2、創(chuàng)建掛載目錄 設(shè)置所有用戶讀寫執(zhí)行權(quán)限 : sudo chmod -R 777 /docker_config/elasticsearch/ 3、創(chuàng)建elasticsearch.yml 配置文件 4、創(chuàng)建容器 參數(shù)說明 : -p 端口映射 -e discovery.type=single

    2023年04月09日
    瀏覽(34)
  • elasticsearch 7.9.3知識(shí)歸納整理(六)之 kibana圖形化操作es指南

    elasticsearch 7.9.3知識(shí)歸納整理(六)之 kibana圖形化操作es指南

    一、創(chuàng)建用戶,角色和權(quán)限指引 1.創(chuàng)建角色 1.1 在kibana首頁(yè)點(diǎn)擊Manage and Administer the Elastic Stack下的securitys settings 1.2 點(diǎn)擊左側(cè)Security 下的roles 1.3 點(diǎn)擊右上角的create role 1.4 輸入角色名字 完成后點(diǎn)擊下面的create role 1.5 創(chuàng)建好角色后,找到角色,點(diǎn)擊 角色名 就會(huì)進(jìn)入給角色授權(quán)界

    2024年02月08日
    瀏覽(25)
  • ES檢索結(jié)果高亮顯示JAVA以及Kibana實(shí)現(xiàn)

    ES檢索結(jié)果高亮顯示JAVA以及Kibana實(shí)現(xiàn)

    對(duì)比做了高亮前后的結(jié)果返回: 高亮前: 高亮后: 可以看到加入高亮的代碼之后返回的json串命中的被套了一層em style=‘color: red’xxx/em標(biāo)簽,也就是我們前置設(shè)置的preTags與postTags; 當(dāng)然hightlight本身支持多個(gè)字段高亮,java代碼實(shí)現(xiàn)只要設(shè)置多個(gè)???? 后續(xù)查詢出結(jié)果之

    2024年02月11日
    瀏覽(22)
  • ElasticSearch基礎(chǔ)1——索引和文檔。Kibana,RestClient操作索引和文檔+黑馬旅游ES庫(kù)導(dǎo)入

    ElasticSearch基礎(chǔ)1——索引和文檔。Kibana,RestClient操作索引和文檔+黑馬旅游ES庫(kù)導(dǎo)入

    導(dǎo)航: 【黑馬Java筆記+踩坑匯總】JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外賣+SpringCloud/SpringCloudAlibaba+黑馬旅游+谷粒商城 黑馬旅游源碼:? https://wwmg.lanzouk.com/ikjTE135ybje 目錄 1.初識(shí)彈性搜索elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 1.1.2.ELK彈性棧 1.1.3.elasticsearch和lucene 1.1.4.搜索引擎技術(shù)

    2024年02月01日
    瀏覽(50)
  • Centos7快速安裝Kibana并連接ES使用

    Centos7快速安裝Kibana并連接ES使用

    Elasticsearch 提供了一個(gè)名為 Kibana 的官方可視化界面。Kibana 是一個(gè)開源的數(shù)據(jù)可視化和管理工具,用于 Elasticsearch。它提供了豐富的功能,如儀表板、圖表、地圖等,幫助您更好地理解、搜索和可視化存儲(chǔ)在 Elasticsearch 中的數(shù)據(jù)。 創(chuàng)建 Kibana 的存儲(chǔ)庫(kù)文件 /etc/yum.repos.d/kibana.r

    2024年02月05日
    瀏覽(30)
  • ElasticSearch如何使用以及java代碼如何查詢并排序ES中的數(shù)據(jù)(距離排序)

    ElasticSearch如何使用以及java代碼如何查詢并排序ES中的數(shù)據(jù)(距離排序)

    import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.geo.GeoDistance; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.common.unit.

    2024年04月12日
    瀏覽(25)
  • ElasticSearch6.x版本概念介紹以及在Kibana上增刪改查的操作

    ElasticSearch6.x版本概念介紹以及在Kibana上增刪改查的操作

    教學(xué)講解視頻地址:視頻地址 1.接近實(shí)時(shí)(NRT Near Real Time ) Elasticsearch是一個(gè) 接近實(shí)時(shí) 的搜索平臺(tái)。這意味著, 從索引一個(gè)文檔直到這個(gè)文檔能夠被搜索到有一個(gè)輕微的延遲(通常是1秒內(nèi)) 2.索引(index) 一個(gè)索引就是一個(gè)擁有幾分相似特征的文檔的集合 。比如說,你可以有一個(gè)

    2023年04月24日
    瀏覽(28)
  • ELK(Elasticsearch、Kibana、Logstash)以及向ES導(dǎo)入mysql數(shù)據(jù)庫(kù)數(shù)據(jù)或CSV文件數(shù)據(jù),創(chuàng)建索引和可視化數(shù)據(jù)

    ELK(Elasticsearch、Kibana、Logstash)以及向ES導(dǎo)入mysql數(shù)據(jù)庫(kù)數(shù)據(jù)或CSV文件數(shù)據(jù),創(chuàng)建索引和可視化數(shù)據(jù)

    地址:Past Releases of Elastic Stack Software | Elastic 在Products和version處分別選擇需要下載的產(chǎn)品和版本,E(elasticsearch)L(logstash)K(kibana)三者版本必須相同 將下載好的elk分別解壓到相同路徑下 本文中elasticsearch=E=ES=es;L=logstash;K=kibana 一般情況下使用默認(rèn)配置即可,下面對(duì)我的

    2024年02月15日
    瀏覽(95)
  • Docker 搭建 ElasticSearch、Kibana 以及基礎(chǔ)使用

    Docker 搭建 ElasticSearch、Kibana 以及基礎(chǔ)使用

    Elasticsearch: 權(quán)威指南 | Elastic 拉取ES以及Kibana鏡像: ES部分搭建: 創(chuàng)建目錄、配置文件、其他配置以及啟動(dòng) 1、目錄部分: 2、端口部分: 3、配置文件創(chuàng)建 4、其他注意事項(xiàng) 5、啟動(dòng)容器 訪問http://宿主機(jī)IP:9200/_cat/nodes?pretty 節(jié)點(diǎn)名稱帶表示為主節(jié)點(diǎn)*,這里作示范僅啟動(dòng)2個(gè)容器

    2024年02月04日
    瀏覽(22)
  • docker部署elasticsearch:8.6.2, kibana,logstash 版本以及kibana的使用

    docker部署elasticsearch:8.6.2, kibana,logstash 版本以及kibana的使用

    How to Run Elasticsearch 8 on Docker for Local Development Docker下elasticsearch8部署、擴(kuò)容、基本操作實(shí)戰(zhàn)(含kibana) 導(dǎo)入es數(shù)據(jù) docker安裝elasticsearch和head插件 docker安裝elasticsearch和head插件,連接失敗問題解決 需要輸入token 生成token報(bào)錯(cuò) ERROR: [xpack.security.enrollment.enabled] must be set to true to create an

    2024年02月16日
    瀏覽(67)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包