Elasticsearch介紹和安裝
Elasticsearch
1.簡介
1.1基本概念
Elasticsearch是基於Lucene的全文檢索庫,本質也是儲存資料,很多概念與MySQL類似的。
對比關係:
索引庫(indices)--------------------------------Databases 資料庫
型別(type)-----------------------------Table 資料表 文件(Document)----------------Row 行 欄位(Field)-------------------Column 列
詳細說明:
概念 | 說明 |
---|---|
索引庫(indices) | indices是index的複數,代表許多的索引, |
型別(type) | 型是模擬mysql中的table概念,一個索引庫下可以有不同型別的索引,比如商品索引,訂單索引,其資料格式不同。不過這會導致索引庫混亂,因此未來版本中會移除這個概念 |
文件(document) | 存入索引庫原始的資料。比如每一條商品資訊,就是一個文件 |
欄位(field) | 文件中的屬性 |
對映配置(mappings) | 欄位的資料型別、屬性、是否索引、是否儲存等特性 |
是不是與Lucene中的概念類似。
另外,在Elasticsearch有一些叢集相關的概念:
- 索引集(Indices,index的複數):邏輯上的完整索引
- 分片(shard):資料拆分後的各個部分
- 副本(replica):每個分片的複製
要注意的是:Elasticsearch本身就是分散式的,因此即便你只有一個節點,Elasticsearch預設也會對你的資料進行分片和副本操作,當你向叢集新增新資料時,資料也會在新加入的節點中進行平衡(負載均衡)。
1.2.Elastic
Elastic官網:https://www.elastic.co/cn/
Elastic有一條完整的產品線:Elasticsearch、Kibana、Logstash等,前面說的三個就是大家常說的ELK技術棧。
1.3 Elasticsearch
Elasticsearch官網:https://www.elastic.co/cn/products/elasticsearch
如上所述,Elasticsearch具備以下特點:
- 分散式,無需人工搭建叢集(solr就需要人為配置,使用Zookeeper作為註冊中心)
- Restful風格,一切API都遵循Rest原則,容易上手
- 近實時搜尋,資料更新在Elasticsearch中幾乎是完全同步的。
1.4 版本
目前Elasticsearch最新的版本是6.4.1,我們使用這個版本6.2.4
需要JDK1.8及以上
1.2.安裝和配置
1.2.1 下載
下載地址:https://www.elastic.co/downloads/past-releases
1.2.2 安裝
elasticsearch無需安裝,解壓即用。
程式碼訪問:9300
程式碼訪問:9300
1.3.執行
進入elasticsearch/bin目錄,可以看到下面的執行檔案:
雙擊執行
可以看到綁定了兩個埠:
- 9300:java程式訪問的埠
- 9200:瀏覽器、postman訪問介面
我們在瀏覽器中訪問:http://127.0.0.1:9200
1.4.安裝Head外掛
1.4.1.什麼是Head
ealsticsearch只是後端提供各種api,那麼怎麼直觀的使用它呢?elasticsearch-head將是一款專門針對於elasticsearch的客戶端工具,類似mysql的sqlyog或者navicat
elasticsearch-head配置包,下載地址:https://github.com/mobz/elasticsearch-head
1.4.2.安裝
- es5以上版本安裝head需要安裝node和grunt
第一步:從地址:https://nodejs.org/en/download/ 下載相應系統的msi,雙擊安裝。
第二步:安裝完成用cmd進入安裝目錄執行 node -v可檢視版本號
第三步:執行 npm install -g grunt-cli 安裝grunt ,安裝完成後執行grunt -version檢視是否安裝成功,會顯示安裝的版本號
第四步:進入E:\environment2\elasticsearch-head-master資料夾,執行npm install命令
第五步:執行head外掛,下面命令二選一
- 命令一:npm run start
- 命令二:grunt server
第六步:
1.4.3.配置執行
第一步:進入es安裝目錄下的config目錄,修改elasticsearch.yml檔案.在檔案的末尾加入以下程式碼
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
然後去掉network.host: 192.168.0.1的註釋並改為network.host: 0.0.0.0,去掉cluster.name;node.name;http.port的註釋(也就是去掉#)
第二步:雙擊elasticsearch.bat重啟es
(下面步驟直接忽略)
第三步:在https://github.com/mobz/elasticsearch-head中下載head外掛,選擇下載zip
第四步:解壓到指定資料夾下,D:\environment\elasticsearch-head-master 進入該資料夾,修改D:\environment\elasticsearch-head-master\Gruntfile.js 在對應的位置加上hostname:’*’、
第五步:在D:\environment\elasticsearch-head-master 下執行npm install 安裝完成後執行grunt server 或者npm run start 執行head外掛,如果不成功重新安裝grunt。成功如下
1.4.4.成功
1.5.安裝ik分詞器
ElasticSearch 預設採用分詞器, 單個字分詞 ,效果很差
搜尋【IK Analyzer 3.0】
http://www.oschina.net/news/2660
Lucene的IK分詞器早在2012年已經沒有維護了,現在我們要使用的是在其基礎上維護升級的版本,並且開發為Elasticsearch的整合外掛了,與Elasticsearch一起維護升級,版本也保持一致,最新版本:6.2.4
1.5.1.下載
原始碼下載地址:https://github.com/medcl/elasticsearch-analysis-ik/tree/6.2.x
jar包下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
每個es版本對應的ik分詞器jar包下載位置:https://github.com/medcl/elasticsearch-analysis-ik/releases
使用ik分詞器的時候,一定要下載對應es版本的jar包
1.5.2.安裝
無需安裝,解壓即可使用
我們將其改名為ik,並複製到elasticsearch的解壓目錄,如下圖所示
然後重啟elasticsearch:
1.5.3.擴充套件詞和停用詞
擴充套件詞和停用詞檔案:
1.5.4 測試
好啦!以上就是小編的內容啦,如果錯誤!歡迎在下方評論哦!!!