ElasticSearch的安裝與基本概念
ElasticSearch介紹:
ElasticSearch是一個基于Lucene的搜索服務(wù)器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是當(dāng)前流行的企業(yè)級搜索引擎。設(shè)計(jì)用于云計(jì)算中,能夠達(dá)到實(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的話,就會認(rèn)為是生產(chǎn)環(huán)境, 會對環(huán)境的要求比較高,我們的測試環(huán)境不一定能夠滿足,一般情況下需要修改2處配置,如下: #1:修改jvm啟動參數(shù) vim conf/jvm.options -Xms128m #根據(jù)自己機(jī)器情況修改 -Xmx128m #2:一個進(jìn)程在VMAs(虛擬內(nèi)存區(qū)域)創(chuàng)建內(nèi)存映射最大數(shù)量 vim /etc/sysctl.conf vm.max_map_count=655360 sysctl -p #配置生效 #啟動ES服務(wù) su - elsearch cd bin ./elasticsearch 或 ./elasticsearch -d #后臺啟動 #通過訪問進(jìn)行測試,看到如下信息,就說明ES啟動成功了 { "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)的問題:
#啟動出錯,環(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安裝:
直接下載對應(yīng)的Windows下的版本,解壓到本地,直接打開即可,如下圖所示:
出現(xiàn)這個界面表明elasticsearch啟動成功:
elasticsearch-head:
elasticsearch-head是一個為ES開發(fā)的一個頁 面客戶端工具,其源碼托管于GitHub,地址為:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster
head提供了4種安裝方式:
- 源碼安裝,通過npm run start啟動(不推薦)
- 通過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 #啟動容器 docker start elasticsearch-head
注意: 由于前后端分離開發(fā),所以會存在跨域問題,需要在服務(wù)端做CORS的配置,如下:
vim elasticsearch.yml
http.cors.enabled: true http.cors.allow-origin: "*"
通過chrome插件的方式安裝不存在該問題。
通過chrome插件安裝: 【注意:國內(nèi)網(wǎng)絡(luò)是直接安裝不上的】
https://chrome.google.com/webstore/search/elasticsearch%20head?hl=zh
安裝成功后的效果:
基本概念
索引
- 索引(index)是Elasticsearch對邏輯數(shù)據(jù)的邏輯存儲,所以它可以分為更小的部分。
- 可以把索引看成關(guān)系型數(shù)據(jù)庫的表,索引的結(jié)構(gòu)是為快速有效的全文索引準(zhǔn)備的,特別是它不存儲原始值。
- Elasticsearch可以把索引存放在一臺機(jī)器或者分散在多臺服務(wù)器上,每個索引有一或多個分片(shard),每個 分片可以有多個副本(replica)。
文檔
- 存儲在Elasticsearch中的主要實(shí)體叫文檔(document)。
- 用關(guān)系型數(shù)據(jù)庫來類比的話,一個文檔相當(dāng)于數(shù)據(jù)庫表中的一行記錄。
- Elasticsearch和MongoDB中的文檔類似,都可以有不同的結(jié)構(gòu),但Elasticsearch的文檔中,相同字段必須有相同類型。
- 文檔由多個字段組成,每個字段可能多次出現(xiàn)在一個文檔里,這樣的字段叫多值字段(multivalued)。
- 每個字段的類型,可以是文本、數(shù)值、日期等。字段類型也可以是復(fù)雜類型,一個字段包含其他子文檔或者數(shù)組。
映射
- 所有文檔寫進(jìn)索引之前都會先進(jìn)行分析,如何將輸入的文本分割為詞條、哪些詞條又會被過濾,這種行為叫做 映射(mapping)。一般由用戶自己定義規(guī)則。
文檔類型
- 在Elasticsearch中,一個索引對象可以存儲很多不同用途的對象。例如,一個博客應(yīng)用程序可以保存文章和評論。
- 每個文檔可以有不同的結(jié)構(gòu)。 不同的文檔類型不能為相同的屬性設(shè)置不同的類型。例如,在同一索引中的所有文檔類型中,一個叫title的字段 必須具有相同的類型。
到此這篇關(guān)于ElasticSearch的安裝與基本概念的文章就介紹到這了,更多相關(guān)ElasticSearch安裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringSecurity自動登錄流程與實(shí)現(xiàn)詳解
這篇文章主要介紹了SpringSecurity自動登錄流程與實(shí)現(xiàn)詳解,所謂的自動登錄是在訪問鏈接時瀏覽器自動攜帶上了Cookie中的Token交給后端校驗(yàn),如果刪掉了Cookie或者過期了同樣是需要再次驗(yàn)證的,需要的朋友可以參考下2024-01-01SpringCloud Config分布式配置中心使用教程介紹
springcloud config是一個解決分布式系統(tǒng)的配置管理方案。它包含了 client和server兩個部分,server端提供配置文件的存儲、以接口的形式將配置文件的內(nèi)容提供出去,client端通過接口獲取數(shù)據(jù)、并依據(jù)此數(shù)據(jù)初始化自己的應(yīng)用2022-12-12Springboot任務(wù)之異步任務(wù)的使用詳解
今天學(xué)習(xí)了一個新技能SpringBoot實(shí)現(xiàn)異步任務(wù),所以特地整理了本篇文章,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06修改request的parameter的幾種方式總結(jié)
這篇文章主要介紹了修改request的parameter的幾種方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08Springboot?2.x?RabbitTemplate默認(rèn)消息持久化的原因解析
這篇文章主要介紹了Springboot?2.x?RabbitTemplate默認(rèn)消息持久化的原因解析,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03java動態(tài)代理和cglib動態(tài)代理示例分享
這篇文章主要介紹了java動態(tài)代理和cglib動態(tài)代理示例,JDK1.3之后,Java提供了動態(tài)代理的技術(shù),允許開發(fā)者在運(yùn)行期間創(chuàng)建接口的代理實(shí)例,下面我們使用示例學(xué)習(xí)一下2014-03-03Springboot日期轉(zhuǎn)換器實(shí)現(xiàn)代碼及示例
這篇文章主要介紹了Springboot日期轉(zhuǎn)換器實(shí)現(xiàn)代碼及示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08