1. 程式人生 > >Elasticsearch介紹和安裝

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/

1.1.Elastic

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.namenode.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 測試

在這裡插入圖片描述

好啦!以上就是小編的內容啦,如果錯誤!歡迎在下方評論哦!!!