ElasticSearch介紹

2021-02-26 PHP架構之路
1、 ElasticSearch介紹1.1 介紹

image.png

官方網址:https://www.elastic.co/cn/products/elasticsearch
Github:https://github.com/elastic/elasticsearch
總結:
1、elasticsearch是一個基於Lucene的高擴展的分布式搜索伺服器,支持開箱即用。
2、elasticsearch隱藏了Lucene的複雜性,對外提供Restful 接口來操作索引、搜索。

突出優點:
1.擴展性好,可部署上百臺伺服器集群,處理PB級數據。
2.近實時的去索引數據、搜索數據。
es和solr選擇哪個?
1.如果你公司現在用的solr可以滿足需求就不要換了。
2.如果你公司準備進行全文檢索項目的開發,建議優先考慮elasticsearch,因為像Github這樣大規模的搜索都在用它。

1.2原理與應用1.2.1索引結構

下圖是ElasticSearch的索引結構,下邊黑色部分是物理結構,上邊橙色部分是邏輯結構,邏輯結構也是為了更好的去描述ElasticSearch的工作原理及去使用物理結構中的索引文件

邏輯結構部分是一個倒排索引表:
1、將要搜索的文檔內容分詞,所有不重複的詞組成分詞列表。
2、將搜索的文檔最終以Document方式存儲起來。
3、每個詞和docment都有關聯。
如下:

現在,如果我們想搜索 quick brown ,我們只需要查找包含每個詞條的文檔:

兩個文檔都匹配,但是第一個文檔比第二個匹配度更高。如果我們使用僅計算匹配詞條數量的簡單 相似性算法 ,那麼,我們可以說,對於我們查詢的相關性來講,第一個文檔比第二個文檔更佳。

2 ElasticaSearch安裝2.1 安裝

安裝配置:
1、新版本要求至少jdk1.8以上。
2、支持tar、zip、rpm等多種安裝方式。
在windows下開發建議使用ZIP安裝方式。
3、支持docker方式安裝
詳細參見:https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html
下載ES: Elasticsearch 6.2.1
https://www.elastic.co/downloads/past-releases
解壓 elasticsearch-6.2.1.zip

bin:腳本目錄,包括:啟動、停止等可執行腳本
config:配置文件目錄
data:索引目錄,存放索引文件的地方
logs:日誌目錄
modules:模塊目錄,包括了es的功能模塊
plugins :插件目錄,es支持插件機制

2.2 配置文件2.2.1 三個配置文件

ES的配置文件的地址根據安裝形式的不同而不同:

使用zip、tar安裝,配置文件的地址在安裝目錄的config下。
使用RPM安裝,配置文件在/etc/elasticsearch下。
使用MSI安裝,配置文件的地址在安裝目錄的config下,並且會自動將config目錄地址寫入環境變量ES_PATH_CONF。

我們使用的zip包安裝,配置文件在ES安裝目錄的config下。
配置文件如下:

elasticsearch.yml :用於配置Elasticsearch運行參數 jvm.options :用於配置Elasticsearch JVM設置log4j2.properties:用於配置Elasticsearch日誌

2.2.2 elasticsearch.yml

配置格式是YAML,可以採用如下兩種方式:
方式1:層次方式
path: data: /var/lib/elasticsearch logs: /var/log/elasticsearch
方式2:屬性方式
path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch

例子如下

cluster.name: xuecheng #配置elasticsearch的集群名稱,默認是elasticsearch。建議修改成一個有意義的名稱。node.name: xc_node_1 #節點名,通常一臺物理伺服器就是一個節點,es會默認隨機指定一個名字,建議指定一個有意義的名稱,方便管理network.host: 0.0.0.0 #綁定ip地址http.port: 9200 #暴露的http埠transport.tcp.port: 9300 #內部埠node.master: true #主節點node.data: true #數據節點discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301", "0.0.0.0:9302"] #設置集群中master節點的初始列表discovery.zen.minimum_master_nodes: 1 #主結點數量的最少值 ,此值的公式為:(master_eligible_nodes / 2) + 1 ,比如:有3個符合要求的主結點,那麼這裡要設置為2。bootstrap.memory_lock: false #內存的鎖定只給es用node.max_local_storage_nodes: 1 #單機允許的最大存儲結點數,通常單機啟動一個結點建議設置為1,開發環境如果單機啟動多個節點可設置大於1path.data: D:\ElasticSearch\elasticsearch‐6.2.1\data #索引目錄path.logs: D:\ElasticSearch\elasticsearch‐6.2.1\logs #日誌http.cors.enabled: true # 跨域設置http.cors.allow‐origin: /.*/

2.2.3 jvm.options

設置最小及最大的JVM堆內存大小:
在jvm.options中設置 -Xms和-Xmx:
1) 兩個值設置為相等
2) 將 Xmx 設置為不超過物理內存的一半

2.2.4 log4j2.properties

日誌文件設置,ES使用log4j,注意日誌級別的配置。

2.3 啟動ES

進入bin目錄,在cmd下運行:elasticsearch.bat

瀏覽器輸入:http://localhost:9200
顯示結果如下(配置不同內容則不同)說明ES啟動成功:

2.4 head插件安裝

head插件是ES的一個可視化管理插件,用來監視ES的狀態,並通過head客戶端和ES服務進行交互,比如創建映射、創建索引等,head的項目地址在https://github.com/mobz/elasticsearch-head 。
從ES6.0開始,head插件支持使得node.js運行。
1、安裝node.js
2、下載head並運行
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start open
HTTP://本地主機:9100 /
3、運行



作者:striveSmile
連結:

https://www.jianshu.com/p/403c9d5b1463

相關焦點

  • ElasticSearch安裝
    一、ElasticSearch介紹Elasticsearch是一個基於Lucene[1]的搜索伺服器。
  • 監控 Elasticsearch 及 Kibana
    /elastic1$ ls *.crtca.crt         metricbeat.crt$ ls *.keymetricbeat.key在這篇文章中,我將介紹如何使用 Elastic 所提供的 Metrics 應用來展示可觀測性。
  • Elasticsearch專題
    數據量擴展到很大級別(PB級數據)ES高可用和高可擴展而生https://www.elastic.co/cn/https://www.elastic.co/products/elasticsearch=8080spring.application.name=springboot-elasticsearch#集群名稱spring.data.elasticsearch.cluster-name=prosayes#集群地址 9300埠是集群節點之間通信的埠號spring.data.elasticsearch.cluster-nodes=192.168.43.135
  • ElasticSearch 從安裝開始
    2.1 單節點安裝首先打開 Es 官網,找到 Elasticsearch:https://www.elastic.co/cn/elasticsearch/然後點擊下載按鈕,選擇合適的版本直接下載即可。看到 started 表示啟動成功。
  • elasticsearch入門實戰
    收錄於話題 #elasticsearch根據DB-Engines的排名顯示,Elasticsearch是最受歡迎的企業搜尋引擎,其次是Apache Solr,也是基於Lucene2.使用場景a、維基百科,類似百度百科,全文檢索,高亮,搜索推薦/2 (權重,百度!)
  • SpringBoot+Elasticsearch實戰
    環境與配置服務端:elasticsearch-6.3.2    1臺客戶端:elasticsearch 6.4.1服務端配置文件:elasticsearch.ymlcluster.name版本Spring Boot 2.0.5默認的elasticsearch版本很低,這裡我們用最新版本6.4.1如果啟動過程中出現java.lang.NoClassDefFoundError: org/elasticsearch/common
  • Elastic App Search初體驗
    elasticsearch我們選擇的是使用rpm包的安裝方式,elasticsearch-7.9.0-x86_64.rpm,elastic7.9版本已經自帶打包了jdk,無需再獨立安裝jdk。CA,一路回車即可/usr/share/elasticsearch/bin/elasticsearch-certutil ca//然後使用ca進行證書的籤發,生成elastic-certificates.p12,一路回車即可/usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
  • Linxu安裝ElasticSearch
    根據DB-Engines的排名顯示,Elasticsearch是最受歡迎的企業搜尋引擎,其次是Apache Solr,也是基於Lucene。備註:摘錄自百度百科;elasticsearch官網下載地址;elasticsearch中文網下載地址分布式實時文件存儲,可將每一個欄位存入索引,使其可以被檢索到。
  • Elasticsearch(三):實戰
    的核心概念進行比較詳細的介紹,但是在實際生產中我們如何使用elasticsearch呢?本篇文章我們先介紹一些elasticsearch常見的使用方法,然後通過一個實際的例子來加深對elasticsearch使用的理解。這個實際例子是網站上收集的用戶點擊菜單的行為日誌數據存儲在elasticsearch上,並可以通過工具可以通過一些圖表來分析用戶的行為。總體的目標:滿足多個維度圖表的查看,索引可以定期歸檔或者存儲不用人工幹預。
  • Elasticsearch + Kibana 集群環境搭建
    本文主要介紹 elasticsearch 集群以及 kibana 的環境搭建。ElasticsearchElasticsearch 可以理解為一個支持模糊查詢的資料庫,用來存儲日誌。下載 Elasticsearchwget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gztar -xzvf elasticsearch-6.2.3.tar.gz修改配置文件修改 config/elasticsearch.yml
  • Elasticsearch 的快照插件
    插件的安裝與查詢插件可以通過命令行 elasticsearch-plugin 來安裝(官方文檔[1]):sudo bin/elasticsearch-plugin install $plugin_namesudo
  • Elasticsearch安裝及使用
    在5.x版本中不支持直接安裝head插件,需要單獨啟動一個服務,安裝及啟動步驟如下:執行下載插件命令:git clone git://github.com/mobz/elasticsearch-head.git下載完畢後進入elasticsearch-head目錄,目錄結構如下:執行安裝命令:cd elasticsearch-head
  • ElasticSearch 極簡教程
    由於 Elasticsearch 具有分布式架構,因此它可以擴展到數千個伺服器並容納PB級的數據。我們不必管理分布式設計的複雜性,因為 ES 已經自動完成。我們有多種方法可以為一些文檔建立索引或查詢它們,然而在使用 ES 下,我們可以輕鬆實現在海量數據快速檢索全文,得到我們想要的結果。下面將介紹Elasticsearch的安裝與簡單使用。
  • Elasticsearch Suggester詳解
    根據使用場景的不同,Elasticsearch裡設計了4種類別的Suggester,分別是:Term SuggesterPhrase SuggesterCompletion SuggesterContext Suggester在官方的參考文檔裡,對這4種Suggester API都有比較詳細的介紹,但苦於只有英文版
  • SpringBoot 集成 Elasticsearch 實戰
    環境與配置服務端:elasticsearch-6.3.2 1 臺客戶端:elasticsearch 6.4.1服務端配置文件:elasticsearch.ymlcluster.name則說明,elasticsearch 依賴的 jar 包版本不一致,統一改成 6.4.1 即可另外,Spring Boot 2.0.5 依賴的 spring-data-elasticsearch 版本是 3.0.1,需要升級到 3.1.02.0.5 依賴2.
  • Spring Data ElasticSearch 使用
    http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd "> <!
  • 搭建Elasticsearch集群
    所以,為了保證 Elasticsearch 的高可用性,我們就應該儘量減少 Elasticsearch 的不可用時間。  那麼怎樣提高 Elasticsearch 的高可用性呢?這時集群的作用就體現出來了。假如 Elasticsearch 只放在一臺伺服器上,即單機運行,假如這臺主機突然斷網了或者被攻擊了,那麼整個 Elasticsearch 的服務就不可用了。
  • Spring Boot整合Elasticsearch
    當然,如果Elasticsearch查詢比等效的關係資料庫中的查詢能更快,那麼這種影響是可以接受的。好的,在長時間的介紹之後繼續這個例子。 Spring Boot提供了一種通過Spring Data存儲庫與Elasticsearch進行交互的簡便方法。
  • SpringBoot 操作 ElasticSearch 詳解
    三、SpringBoot 項目引入 ElasticSearch 依賴下面介紹下 SpringBoot 如何通過 elasticsearch-rest-high-level-client 工具操作 ElasticSearch,這裡需要說一下,為什麼沒有使用 Spring 家族封裝的 spring-data-elasticsearch。
  • ElasticSearch性感體驗
    環境配置環境項配置項虛擬機IP192.168.1.215Docker版本20.10.6ElasticSearch鏡像elasticsearch: 7.6.0Kibana鏡像kibana: 7.6.0Docker 安裝1