ES入門及安裝軟件

es介紹

Elasticsearch,簡稱es,是一款高擴展的分佈式全文檢索引擎。它能夠近乎實時的存儲,檢索數據。es是面向文檔型的數據庫,一條數據就是一個文檔,用json作爲文檔序列化的格式。es是基於java開發的並使用lucene做爲核心來實現全部的索引和搜索功能,將對搜索引擎的操做都封裝成restful的api,使用http請求就能對其進行操做。html

es的優勢:java

  • 分佈式實時文件存儲,並將每個字段都編入索引,使其能夠被搜索
  • 實時分析的分佈式搜索引擎
  • 能夠擴展到上百臺服務器,處理PB級別的結構化或非結構化數據

這裏筆者使用的是es7.X,es6和es7的差異仍是挺大的,以下:node

2.es安裝

要求:jdk1.8以上,最低要求1.8。es6

我這裏是安裝的windows版本的,es的安裝很是簡單,開箱即用。若是須要文件,請留言郵箱。算法

1.若是電腦性能不是很好,能夠修改config下的jvm.options中的22行~23行:數據庫

-Xms1g
-Xmx1g

由於個人電腦性能不是很好,因此我就改爲了256M。npm

2.解決跨域,用於後面可視化界面和後臺的鏈接。json

config下的elasticsearch.yml文件末尾添加:windows

http.cors.enabled: true
http.cors.allow-origin: "*"

3.啓動,bin目錄下的elasticsearch.bat,雙擊便可啓動。api

4.訪問:

5.安裝可視化界面(head)

head插件依賴於node.js。因此必需要安裝node.js。

head插件基於grunt和http通訊。

安裝依賴:

# 在elasticsearch-head-master目錄下安裝淘寶鏡像
npm install -g cnpm --registry=https://registry.npm.taobao.org
# 安裝完cnpm以後執行
cnpm install
# 啓動head插件命令
npm run start

訪問:localhsot:9100

圖中綠色的表示數據塊。

6.安裝kibana

kibana也是基於node的。

啓動:kibana-7.6.1-windows-x86_64\bin目錄下的kibana.bat的文件雙擊啓動。

訪問:localhost:5601

從上圖中能夠看到,kibana是英文版的,漢化:

kibana-7.6.1-windows-x86_64\config下最後一行添加:

i18n.locale: "zh-CN"

重啓以後再此訪問,就全是中文版的了。

3.es核心概念

索引(index):索引是組織數據的邏輯命名空間,是存放數據的地方,能夠理解爲數據庫。

類型(type):定義數據結構的,能夠理解爲數據庫的一張表。

文檔(document):數據(一個文檔就是一條數據),能夠理解爲數據庫的行數據。

倒排索引:一個倒排索引有文檔中全部不重複詞的列表構成,使用與快速的全文檢索。能夠理解爲數據庫經過增長一個索引(好比一個 B樹(B-tree))索引 到指定的列上,以便提高數據檢索速度。在es中,每一個字段的全部數據都是默認被索引的,即每一個字段都有爲了快速檢索設置的專門的倒排索引。同時能在同一個查詢中使用全部的倒排索引。

1.物理設計:

es在後臺把每一個索引劃分紅多個分片,每一個分片能夠在集羣中的不一樣服務器間遷移,由於es通常狀況下都會搭建集羣,固然單機也是集羣。

2.邏輯設計:

一個索引類型中,包含多個文檔。有多個文檔的話,就能夠去查找對應得信息,當索引一篇文檔時,能夠經過這樣得一個順序找到它:索引>類型>文檔ID(對應數據庫位:數據庫>表>行),經過這個組合就能找到對應得某個具體的文檔。

4.ik分詞器

將elasticsearch-analysis-ik-7.6.1這個文件解壓縮,而後放到es的elasticsearch-7.6.1\plugins下,如圖:

而後重啓es,能夠看到ik分詞器的插件。

IK分詞器提供了兩個分詞算法:ik_smart(最少切分) ik_max_word(最細粒度劃分);

測試:

我在這裏使用「塘朗變電站」測試,能夠看到,ik分詞器將「塘」,「朗」看成一個詞,將「變電站」看成一個詞。若是咱們想將塘朗看成一個詞,那麼就須要自定義配置詞組。

在elasticsearch-7.6.1\plugins\ik\config目錄下,有一個IKAnalyzer.cfg.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
	<comment>IK Analyzer 擴展配置</comment>
	<!--用戶能夠在這裏配置本身的擴展字典   在這裏我寫一個本身的字典-->
	<entry key="ext_dict">charon.dic</entry>
	 <!--用戶能夠在這裏配置本身的擴展中止詞字典-->
	<entry key="ext_stopwords"></entry>
	<!--用戶能夠在這裏配置遠程擴展字典 -->
	<!-- <entry key="remote_ext_dict">words_location</entry> -->
	<!--用戶能夠在這裏配置遠程擴展中止詞字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

在config目錄下新建一個charon.dic文件,而後在裏面新增塘朗。而後就能夠看到,配置以後就將「塘朗」變成一個詞了。

5.文檔操做

最初打算本身作一些關於文檔操做的案例的,可是發如今官網文檔上有很詳細的說明,那就貼出官網的地址吧:

https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

6.使用java代碼操做es

這裏我就不貼出本身的代碼了,下面這位老哥的代碼,親測有效:

https://blog.csdn.net/b15735105314/article/details/112300222

相關文章
相關標籤/搜索