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

ES 部署,問題及整合spring boot 簡單使用

這篇具有很好參考價值的文章主要介紹了ES 部署,問題及整合spring boot 簡單使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

安裝部署

先前部署項目部署es的流程

下載elasticsearch

https://www.elastic.co/cn/downloads/elasticsearch

解壓安裝elasticsearch

修改配置文件,配置為單個節(jié)點

config/elasticsearch.yml

discovery,seed_hosts:[“127.0.0.1:9200”]

cluster.initial_master_nodes:[“node-1”]

因為部分elasticsearch支持的jdk版本不一樣,所以可以自己再給elasticsearch配置一個jdk版本

啟動elasticsearch

因為elasticsearch不能以root用戶啟動,所以 要新建一個用戶用來啟動elasticsearch

adduser 新用戶名

passwd 初始化新用戶的密碼

使用root用戶找到sudoers文件,賦予可讀寫權限

whereis sudoers

修改權限

chomd -v u+w sudoers的路徑

進入sudoers文件,在root下添加

新用戶用戶名 ALL=(ALL) ALL

切換到新用戶

su 新用戶名

之后進入elasticsearch目錄下,進入bin目錄,后臺運行elasticsearch

./elasticsearch -d

部署問題(使用版本為7.16)

啟動配置

  • es的安裝目錄下的config/elasticsearch.yml

集群名設置

cluster.name: 集群名

節(jié)點名設置

node.name: 當前節(jié)點名

任何ip都能訪問

network.host: 0.0.0.0

啟動端口

http.port: 9200

jdk版本不對

一般使用的jdk為8版本,但是es版本不支持jdk8,所以要給es專門配置一套jdk

es要求的版本最低為11版本

所以,下載11版本的jdk,并在環(huán)境變量中配置ES_JAVA_HOME即可

啟動權限問題

按照上述的方式配好用戶后,可能還是會提示沒有權限啟動

啟動的時候不能使用sudo方式,不然依舊是“不能以root用戶啟動es”的報錯

最直接的方式就是新建一個用戶后,把es的安裝目錄的權限分給新用戶

例如(root用戶下)

adduser es

chown -R es es安裝目錄

jvm警告

Java HotSpot? 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.

這個錯誤需要修改es安裝目錄下的config/jvm.optionsn

-XX:+UseConcMarkSweepGC

修改為
-XX:+UseG1GC

無法使用問題

部署完之后不僅要訪問ip:端口查看啟動狀態(tài)

也需要ip:端口/_cat/nodes?pretty檢查是否正常

如果顯示

{
    "error": {
        "root_cause": [
            {
                "type": "master_not_discovered_exception",
                "reason": null
            }
        ],
        "type": "master_not_discovered_exception",
        "reason": null
    },
    "status": 503
}

則還是沒有準備,去安裝目錄下的conf/elasticsearch.yml中檢查配置

查看兩個內容,這兩個節(jié)點的內容一定要一致

cluster.initial_master_nodes: ["node1"]
node.name: node1

文件權限與存儲大小問題

報錯內容

ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.
bootstrap check failure [1] of [2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /usr/local/elasticsearch/elasticsearch/logs/my-application.log

解決方案

切換到root用戶修改一些內容

elasticsearch用戶擁有的可創(chuàng)建文件描述的權限太低,至少需要65536,

vim /etc/security/limits.conf # 在最后面追加下面內容

es啟動用戶 hard nofile 65536

es啟動用戶 soft nofile 65536

max_map_count文件包含限制一個進程可以擁有的VMA(虛擬內存區(qū)域)的數(shù)量

vim /etc/sysctl.conf # 在最后面追加下面內容

vm.max_map_count=655360

執(zhí)行 sysctl -p

介紹

es是一個分布式,高擴展,高實時的搜索與數(shù)據(jù)分析引擎,通過簡單的RESTful API來隱藏Lucene的復雜性,從而讓全文搜索變的簡單,本身擴展性很好,可以擴展到上百臺服務器,處理PB級別的數(shù)據(jù)

核心概念

es是面向文檔的搜索引擎

es和數(shù)據(jù)庫的比對

數(shù)據(jù)庫 es
數(shù)據(jù)庫 索引
types
documents
字段 fields

文檔

es的數(shù)據(jù)存儲格式相當于索引下的類型里面的json格式的數(shù)據(jù)

因為es是面向文檔的搜索,所以一個文檔就是es中可搜索的最小的單元

類比于mysql中,就是把mysql中的一行數(shù)據(jù)以json的格式保存在es中

類型

相當于數(shù)據(jù)庫的表,一個索引下可以有很對類型,但是在es6.0開始,type就已經(jīng)主鍵廢棄了,但是依舊可以設置多個類型,但是在7.0開始,一個索引只能有一種類型了(_doc)

索引

不同特性的文檔存放在不同的索引里

索引名稱必去全部都是小寫

單個集群中可以定義任意多個索引

索引具有mapping和setting的概念,mapping用來定義文檔字段的類型,setting用來定義不同數(shù)據(jù)的分布

基本操作

創(chuàng)建一個空的索引

創(chuàng)建一個0副本2分片的repledata索引

PUT /ropledata
{
  "settings": { 
    "number_of_shards": "2", 
    "number_of_replicas": "0"
  } 
}

修改副本數(shù)量(分片數(shù)量無法修改)

PUT ropledata/_settings 
{ 
  "number_of_replicas" : "2" 
}

刪除索引

DELETE /ropledata

插入數(shù)據(jù)

插入數(shù)據(jù)的時候可以指定ID,不指定的話es會幫我們生成

id是101而不是數(shù)據(jù)中的"id":1

//指定id 
POST /ropledata/_doc/101 
{
  "id":1,
  "name":"且聽_風吟",
  "page":"https://ropledata.blog.csdn.net",
  "say":"歡迎點贊,收藏,關注,一起學習" 
}

修改數(shù)據(jù)

es的文檔是不可以修改的,但是可以覆蓋,es的數(shù)據(jù)修改本質上就是對文檔的覆蓋

es對數(shù)據(jù)的修改分為全局更新和局部更新

全局更新是替換操作,就算是數(shù)據(jù)一樣也會執(zhí)行替換操作

局部更新是只有遇到新得內容的時候才會去更新

所以局部更新會比全局更新效率高

全局更新

PUT /ropledata/_doc/101
{ 
  "id":1,
  "name":"且聽_風吟",
  "page":"https://ropledata.blog.csdn.net",
  "say":"再次歡迎點贊,收藏,關注,一起學習" 
}

局部更新

POST /ropledata/_update/101 
{
  "doc":
  {
    "say":"奧力給"
  } 
}

查詢數(shù)據(jù)

GET /ropledata/_doc/101

刪除數(shù)據(jù)

DELETE /ropledata/_doc/101

查詢語句

查詢當前索引下全部的內容,并返回指定屬性值的數(shù)據(jù)內容

(因為7.0之后是沒有type的概念了,所以使用了_doc,如果還有type的概念的話,可以把_doc替換為相對應的type名即可查詢)

GET /topledata/_doc/_search
{
    "query":{
        "match_all":{

        }
    },
    "_source":["屬性值","屬性值"]
}

查詢指定字符查找內容,并按照倒序排列,從第0條數(shù)據(jù)開始,查找10條數(shù)據(jù)(也就是分頁查詢)

GET /topledata/_doc/_search
{
    "query":{
        "mathc":{
            "屬性值":"關鍵字"
        }
    },
    "sort":[
        {
            "屬性字段":{
                "order":"desc"
                }
        }
    ],
    "from":0,
    "size":10
}

match

對于match而言,是根據(jù)分詞來查詢的,如果match中存在兩個分詞,那個他會一個一個查詢,之后取他們的一個并集

可以使用match_phrase來指定精準查詢不需要分詞查

多條件查詢

bool過濾可以用來合并多個過濾條件查詢結果的布爾邏輯

must多個查詢條件的完全匹配,相當于and

must_not多個查詢條件的相反匹配,相當于not

should至少有一個查詢條件匹配,相當于or

這些參數(shù)分別可以繼承一個過濾條件或者一個過濾條件的數(shù)組

GET /topledata/_doc/_search
{
    "query":{
        "bool":{
            "must":[
                {
                    "match":{
                        "屬性值":"關鍵詞"
                            }
                    }
                ]
            },
            "filter":{
                "range":{
                       "關鍵詞":{
                            "判斷符":內容
                            }    
                    }
                }
    }
}

聚合分析

es5之后fielddata默認是false,需要開啟這個才能進行聚合

GET /topledata/_mapping/product
{
    "properties":{
        "tags":{
            "type":"text",
            "fielddata":true
            }
      }
}

獲取某一列以不同分組的總和,并以某個條件做排序操作,并使用range過濾指定范圍的數(shù)據(jù)

terms和term類似,單terms允許指定多個匹配條件,如果某個字段指定了多個值,那么需要文檔一起做匹配

GET /topledata/_doc/_search
{
    "query":{
        "match":{
            "屬性值":"關鍵詞"
        }
    },
    "aggs":{
        "聚合名稱":{
            "terms":{
                "field":"屬性值",
                "range":[
                     {
                        "from":值,
                        "to":值
                   },
                     {
                         "from":值,
                        "to":值
                    }       
                ],
                "order":{
                    "下面的那個aggs的名稱":"desc"
                    }
                }
            },
            "aggs":{
                "自定義名稱":{
                    "avg":{
                        "field":"屬性值"
                        }
                    }
                }
    }
}

整合springboot

引入elasticsearch啟動包

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

配置yml文件

spring:
  elasticsearch:
    uris: http://ip:端口
    #當前部署的es并沒有賬號和密碼
    #username:
    #password:

測試內容

實體類

新建一個實體類來標識一個索引

@Data
@Document(indexName = "testdemo")
public class EsDemoModel {

    @Id
    private String id;

    @Field(type = FieldType.Text)
    private String name;

    @Field(type = FieldType.Text)
    private String team;
}

方法

和redis類似,擁有一個ElasticsearchRestTemplate可以引用

保存

    @Test
    void EsSaveTest(){
        EsDemoModel esDemoModel = new EsDemoModel();
        esDemoModel.setName("panther");
        esDemoModel.setTeam("marvel");
        elasticsearchRestTemplate.save(esDemoModel);
    }

查詢

    @Test
    void EsSearchTest(){
        Query query = new NativeSearchQueryBuilder().withQuery(QueryBuilders.queryStringQuery("man").defaultField("name")).build();
        SearchHits<EsDemoModel> search = elasticsearchRestTemplate.search(query, EsDemoModel.class);
        List<EsDemoModel> collect = search.getSearchHits().stream().map(SearchHit::getContent).collect(Collectors.toList());
        System.out.println(collect);
    }

修改

es的操作和redis類似,如果遇到有相同_id的內容,就會覆蓋,所以查出來之后再保存可以保證對一條數(shù)據(jù)的修改文章來源地址http://www.zghlxwxcb.cn/news/detail-406968.html

刪除

 @Test
    void EsDelete(){
        Query query = new NativeSearchQueryBuilder().withQuery(QueryBuilders.queryStringQuery("super man").defaultField("name")).build();
        elasticsearchRestTemplate.delete(query,EsDemoModel.class);
    }

到了這里,關于ES 部署,問題及整合spring boot 簡單使用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 知識點13--spring boot整合elasticsearch以及ES高亮

    知識點13--spring boot整合elasticsearch以及ES高亮

    本章知識點沿用知識點12的項目,介紹如何使用spring boot整合ES,沒有ES的去我主頁 各類型大數(shù)據(jù)集群搭建文檔--大數(shù)據(jù)原生集群本地測試環(huán)境搭建三 中可以看到ES如何搭建 不管你有沒有ES,最好是沒有,因為一定要知道一點,一定要去官網(wǎng)查一下你當前用的spring boot data es的版

    2024年02月12日
    瀏覽(97)
  • Spring Boot 2.0 M7 整合 ES 5 、Kibana 和 X-pack

    ES 及 x-pack 下載安裝 Kibana 及 x-pack 下載安裝 Spring Boot 整合 ES Spring Boot 操作 ES 閱讀時間:5 分鐘 摘錄:打算起手不凡寫出鴻篇巨作的,往往堅持不了完成第一章節(jié) 原文出處:spring4all.com spring-data-elasticsearch 之 ElasticSearch 架構初探,詳細看下我另外一篇文章《深入淺出 spring-d

    2024年02月20日
    瀏覽(15)
  • Spring Boot 實戰(zhàn) | Spring Boot整合JPA常見問題解決方案

    Spring Boot 實戰(zhàn) | Spring Boot整合JPA常見問題解決方案

    專欄集錦,大佬們可以收藏以備不時之需: Spring Cloud 專欄: Python 專欄: Redis 專欄: TensorFlow 專欄: Logback 專欄: 量子計算: 量子計算 | 解密著名量子算法Shor算法和Grover算法 AI機器學習實戰(zhàn): AI機器學習實戰(zhàn) | 使用 Python 和 scikit-learn 庫進行情感分析 AI機器學習 | 基于lib

    2024年02月04日
    瀏覽(23)
  • windows部署es6.8.0集群并部署到spring boot

    windows部署es6.8.0集群并部署到spring boot

    1、先下載windows版本es 2、下載完成之后,建一個文件夾elasticsearch-cluster,把es解壓到里邊,并且在復制兩份 3、去 conf 文件夾下,打開 elasticsearch.yml 文件添加以下配置 ,分別是三個es的 elasticsearch.yml 文件的配置 cluster.name: my-application node.name: node-1 network.host: 127.0.0.1 http.port: 9

    2023年04月21日
    瀏覽(17)
  • Spring Boot整合canal實現(xiàn)數(shù)據(jù)一致性解決方案解析-部署+實戰(zhàn)

    Spring Boot整合canal實現(xiàn)數(shù)據(jù)一致性解決方案解析-部署+實戰(zhàn)

    ??? 個人主頁 :牽著貓散步的鼠鼠? ??? 系列專欄 :Java全棧-專欄 ??? 個人學習筆記,若有缺誤,歡迎評論區(qū)指正 ? 1.前言 2.canal部署安裝 3.Spring Boot整合canal 3.1數(shù)據(jù)庫與緩存一致性問題概述 3.2 整合canel 4.總結 canal [k?\\\'n?l] ?,譯意為水道/管道/溝渠,主要用途是 基于

    2024年03月19日
    瀏覽(23)
  • Spring Boot整合Log4j2.xml的問題

    Spring Boot整合Log4j2.xml的時候返回以下錯誤: Caused by: org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4j 進行了解決。 Spring Boot整合Log4j2.xml經(jīng)過以下操作: 配置 log4j2.xml 添加到 src/main/resources 目錄下 Gradle的配置:在 build.gradle 中添加: 啟動應用,返回以

    2024年02月09日
    瀏覽(19)
  • Spring boot整合sse(使用詳解)

    Spring boot整合sse(使用詳解)

    SSE是一種 基于HTTP長連接技術,允許服務器向客戶端瀏覽器實時推送更新。 客戶端通過創(chuàng)建一個EventSource對象并指向服務器上的一個URL來發(fā)起請求,這個請求保持打開狀態(tài),服務器可以在這個單一的TCP連接上不斷發(fā)送新的數(shù)據(jù)塊。這些數(shù)據(jù)塊被稱為“事件”,每個事件包含類

    2024年04月12日
    瀏覽(49)
  • 在 Spring Boot 中整合、使用 WebSocket

    WebSocket 是一種基于 TCP 協(xié)議的全雙工通信協(xié)議,它允許客戶端和服務器之間建立持久的、雙向的通信連接。相比傳統(tǒng)的 HTTP 請求 - 響應模式,WebSocket 提供了實時、低延遲的數(shù)據(jù)傳輸能力。通過 WebSocket,客戶端和服務器可以在任意時間點互相發(fā)送消息,實現(xiàn)實時更新和即時通

    2024年04月13日
    瀏覽(17)
  • 【Spring Boot Admin】使用(整合Spring Security服務,添加鑒權)

    【Spring Boot Admin】使用(整合Spring Security服務,添加鑒權)

    Spring Boot Admin 監(jiān)控平臺 背景:Spring Boot Admin 監(jiān)控平臺不添加鑒權就直接訪問的話,是非常不安全的。所以在生產(chǎn)環(huán)境中使用時,需要添加鑒權,只有通過鑒權后才能監(jiān)控客戶端服務。本文整合Spring Security進行實現(xiàn)。 pom依賴 yml配置 啟動類@EnableAdminServer 安全配置類:SecuritySe

    2024年02月16日
    瀏覽(46)
  • 使用 Spring Boot 整合 Kafka:實現(xiàn)高效的消息傳遞

    Kafka 是一種流處理平臺,用于在分布式系統(tǒng)中處理高吞吐量的數(shù)據(jù)流。它是一種基于發(fā)布訂閱模式的消息系統(tǒng),能夠處理來自多個應用程序的數(shù)據(jù)流。Kafka 具有高度的可擴展性、可靠性和性能,使得它成為處理大數(shù)據(jù)的流行選擇。 Spring Boot 是一種開源框架,用于簡化 Java 應用

    2024年02月14日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包