ElasticSearch的安裝與基本概念
ElasticSearch介紹:
ElasticSearch是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是當(dāng)前流行的企業(yè)級(jí)搜索引擎。設(shè)計(jì)用于云計(jì)算中,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定,可靠,快速,安裝使用方便。
官方網(wǎng)址:Elasticsearch:官方分布式搜索和分析引擎 | Elastic

下載安裝
下載鏈接:Download Elasticsearch | Elastic

centos7單機(jī)版安裝
#創(chuàng)建elsearch用戶,Elasticsearch不支持root用戶運(yùn)行
useradd elsearch
#解壓安裝包
tar -xvf elasticsearch-8.3.3-linux-x86_64.tar.gz -C es/
#修改配置文件
vim conf/elasticsearch.yml
network.host: 0.0.0.0 #設(shè)置ip地址,任意網(wǎng)絡(luò)均可訪問
#說明:在Elasticsearch中如果,network.host不是localhost或者127.0.0.1的話,就會(huì)認(rèn)為是生產(chǎn)環(huán)境, 會(huì)對(duì)環(huán)境的要求比較高,我們的測(cè)試環(huán)境不一定能夠滿足,一般情況下需要修改2處配置,如下:
#1:修改jvm啟動(dòng)參數(shù)
vim conf/jvm.options
-Xms128m #根據(jù)自己機(jī)器情況修改
-Xmx128m
#2:一個(gè)進(jìn)程在VMAs(虛擬內(nèi)存區(qū)域)創(chuàng)建內(nèi)存映射最大數(shù)量
vim /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p #配置生效
#啟動(dòng)ES服務(wù)
su - elsearch
cd bin
./elasticsearch 或 ./elasticsearch -d #后臺(tái)啟動(dòng)
#通過訪問進(jìn)行測(cè)試,看到如下信息,就說明ES啟動(dòng)成功了
{
"name": "dSQV6I8",
"cluster_name": "elasticsearch",
"cluster_uuid": "v5GPTWAtT5emxFdjigFg-w",
"version": {
"number": "6.5.4",
"build_flavor": "default",
"build_type": "tar",
"build_hash": "d2ef93d",
"build_date": "2018-12-17T21:17:40.758843Z",
"build_snapshot": false,
"lucene_version": "7.5.0",
"minimum_wire_compatibility_version": "5.6.0",
"minimum_index_compatibility_version": "5.0.0"
},
"tagline": "You Know, for Search"
}
#停止服務(wù)
root@itcast:~# jps
68709 Jps
68072 Elasticsearch
kill 68072 #通過kill結(jié)束進(jìn)程安裝過程可能出現(xiàn)的問題:
#啟動(dòng)出錯(cuò),環(huán)境:Centos6 [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] #解決:切換到root用戶,編輯limits.conf 添加類似如下內(nèi)容 vi /etc/security/limits.conf 添加如下內(nèi)容: * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096 [2]: max number of threads [1024] for user [elsearch] is too low, increase to at least [4096] #解決:切換到root用戶,進(jìn)入limits.d目錄下修改配置文件。 vi /etc/security/limits.d/90-nproc.conf #修改如下內(nèi)容: * soft nproc 1024 #修改為 * soft nproc 4096 [3]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk #解決:Centos6不支持SecComp,而ES5.2.0默認(rèn)bootstrap.system_call_filter為true vim config/elasticsearch.yml 添加: bootstrap.system_call_filter: false


windows安裝:
直接下載對(duì)應(yīng)的Windows下的版本,解壓到本地,直接打開即可,如下圖所示:

出現(xiàn)這個(gè)界面表明elasticsearch啟動(dòng)成功:

elasticsearch-head:
elasticsearch-head是一個(gè)為ES開發(fā)的一個(gè)頁 面客戶端工具,其源碼托管于GitHub,地址為:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster
head提供了4種安裝方式:
- 源碼安裝,通過npm run start啟動(dòng)(不推薦)
- 通過docker安裝(推薦)
- 通過chrome插件安裝(推薦)
- 通過ES的plugin方式安裝(不推薦)
通過docker安裝
#拉取鏡像 docker pull mobz/elasticsearch-head:5 #創(chuàng)建容器 docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5 #啟動(dòng)容器 docker start elasticsearch-head
注意: 由于前后端分離開發(fā),所以會(huì)存在跨域問題,需要在服務(wù)端做CORS的配置,如下:
vim elasticsearch.yml
http.cors.enabled: true http.cors.allow-origin: "*"
通過chrome插件的方式安裝不存在該問題。
通過chrome插件安裝: 【注意:國(guó)內(nèi)網(wǎng)絡(luò)是直接安裝不上的】
https://chrome.google.com/webstore/search/elasticsearch%20head?hl=zh

安裝成功后的效果:


基本概念
索引
- 索引(index)是Elasticsearch對(duì)邏輯數(shù)據(jù)的邏輯存儲(chǔ),所以它可以分為更小的部分。
- 可以把索引看成關(guān)系型數(shù)據(jù)庫的表,索引的結(jié)構(gòu)是為快速有效的全文索引準(zhǔn)備的,特別是它不存儲(chǔ)原始值。
- Elasticsearch可以把索引存放在一臺(tái)機(jī)器或者分散在多臺(tái)服務(wù)器上,每個(gè)索引有一或多個(gè)分片(shard),每個(gè) 分片可以有多個(gè)副本(replica)。
文檔
- 存儲(chǔ)在Elasticsearch中的主要實(shí)體叫文檔(document)。
- 用關(guān)系型數(shù)據(jù)庫來類比的話,一個(gè)文檔相當(dāng)于數(shù)據(jù)庫表中的一行記錄。
- Elasticsearch和MongoDB中的文檔類似,都可以有不同的結(jié)構(gòu),但Elasticsearch的文檔中,相同字段必須有相同類型。
- 文檔由多個(gè)字段組成,每個(gè)字段可能多次出現(xiàn)在一個(gè)文檔里,這樣的字段叫多值字段(multivalued)。
- 每個(gè)字段的類型,可以是文本、數(shù)值、日期等。字段類型也可以是復(fù)雜類型,一個(gè)字段包含其他子文檔或者數(shù)組。
映射
- 所有文檔寫進(jìn)索引之前都會(huì)先進(jìn)行分析,如何將輸入的文本分割為詞條、哪些詞條又會(huì)被過濾,這種行為叫做 映射(mapping)。一般由用戶自己定義規(guī)則。
文檔類型
- 在Elasticsearch中,一個(gè)索引對(duì)象可以存儲(chǔ)很多不同用途的對(duì)象。例如,一個(gè)博客應(yīng)用程序可以保存文章和評(píng)論。
- 每個(gè)文檔可以有不同的結(jié)構(gòu)。 不同的文檔類型不能為相同的屬性設(shè)置不同的類型。例如,在同一索引中的所有文檔類型中,一個(gè)叫title的字段 必須具有相同的類型。
到此這篇關(guān)于ElasticSearch的安裝與基本概念的文章就介紹到這了,更多相關(guān)ElasticSearch安裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)戰(zhàn)之自助進(jìn)行多張圖片合成拼接
在當(dāng)今數(shù)字化時(shí)代,圖像處理技術(shù)在各個(gè)領(lǐng)域都發(fā)揮著至關(guān)重要的作用,本文為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)多張圖片合成拼接,需要的可以了解下2025-02-02
Java-ElementUi中的row-class-name使用
這篇文章主要介紹了Java-ElementUi中的row-class-name使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
JAVA中的final關(guān)鍵字用法實(shí)例詳解
這篇文章主要介紹了JAVA中的final關(guān)鍵字用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Java中的final關(guān)鍵字用于修飾數(shù)據(jù),方法及類的具體使用技巧,需要的朋友可以參考下2015-12-12
java打印從1到100的值(break,return斷句)
java 先寫一個(gè)程序,打印從1到100的值。之后修改程序,通過使用break關(guān)鍵詞,使得程序在打印到98時(shí)退出。然后嘗試使用return來達(dá)到相同的目的2017-02-02
SpringBoot整合JPA框架實(shí)現(xiàn)過程講解
在開發(fā)中,我們通常會(huì)對(duì)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行操作,Sprirng?Boot對(duì)關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的訪問操作都提供了非常好的整合支持2022-12-12
Java中的Semaphore信號(hào)量使用方法代碼實(shí)例
這篇文章主要介紹了Java中的Semaphore信號(hào)量使用方法代碼實(shí)例,Semaphore是一種基于計(jì)數(shù)的信號(hào)量,它可以設(shè)定一個(gè)閾值,基于此,多個(gè)線程競(jìng)爭(zhēng)獲取許可信號(hào),做自己的申請(qǐng)后歸還,超過閾值后,線程申請(qǐng)?jiān)S可信號(hào)將會(huì)被阻塞,需要的朋友可以參考下2023-11-11

