Elasticsearch

Elasticsearch,簡稱es,es是一個開源的高擴展的分布式全文檢索引擎

通過解壓Elasticsearch壓縮包,解壓即安裝,打開bin目錄的Elasticsearch.bat文件開啟服務器

注意Elasticsearch服務器中的9300是TCP通訊端口,集群間和TCP客戶端都執(zhí)行該端口

9200是http協(xié)議的RESTful接口

在谷歌瀏覽器的開發(fā)者模式中 安裝ES的圖形化界面插件

Elasticsearch的核心概念:

Elasticsearch是面向文檔(document)的,意味著它可以存儲整個對象或文檔

Elasticsearch? -> Indexes(索引) -> Types(類型) -> Documents(文檔) ->Fields(字段)

索引index

在Elasticsearch中存儲數(shù)據(jù)的行為叫做索引(indexing),

一個索引由一個名字來標識(必須全部小寫)

類型type

在一個索引中,可以定義一種或多種類型,相當于關系型數(shù)據(jù)庫中的表

一個類型是你索引的一個邏輯上的分類或分區(qū)

字段Field

相當于數(shù)據(jù)表字段,對不同屬性進行分類標識

映射mapping

是處理數(shù)據(jù)的方式和規(guī)則,針對于字段做的一些限制,字段的配置.

比如:某個字段的數(shù)據(jù)類型、默認值、分析器、是否被索引等等

文檔document

document一個文檔是一個可被索引的基礎信息單元,

文檔以JSON格式來表示,而JSON是一個到處存在的互聯(lián)網(wǎng)數(shù)據(jù)交互格式

使用Postman工具進行RESTful接口訪問

請求方法:<verb>? ? ? ? ? ? 適當?shù)腍TTP方法:GET? POST? PUT? HEAD? DELETE

請求地址:<Protocol>://<Host>:<Port>/<Path>?<Query_String>

Protocol:? http或者https

Host:? Elasticsearch 集群中任意節(jié)點的主機名,或者用 localhost 代表本地機器上的節(jié)點。

Port:??運行 Elasticsearch HTTP服務的端口號,默認是 9200

Path:? Path API的終端路徑 (例如 _count將返回集群中文檔數(shù)量)

Query_String:? 任意可選的查詢字符串參數(shù)(例如 ?pretty 將格式化地輸出JSON返回值)

請求體:<Body>? ? ? ? 一個JSON格式的請求體

創(chuàng)建索引


成功創(chuàng)建以后在谷歌瀏覽器的 Elasticsearch? 插件中查看

創(chuàng)建索引時配置映射

創(chuàng)建成功后在谷歌瀏覽器的 Elasticsearch-head? 查看

創(chuàng)建索引后配置映射

路徑中有帶"_"的表示的是Path API

刪除索引

刪除對應的索引

創(chuàng)建文檔

地址最后的值為索引庫中文檔的ID,如果不傳會隨機生成一個

修改文檔

querystring查詢 (query_string是帶分詞器的查詢)

字符串查詢時,搜索"搜索服務器"和"大器"都可以搜索到數(shù)據(jù)

term查詢(term,關鍵詞匹配)

詞條查詢,搜索"搜索"卻沒有搜索到數(shù)據(jù)

總結:? ?創(chuàng)建索引庫,設置mapping,新建type,刪除索引? ? 文檔 CRUD

IK分詞器和Elasticsearch集成

當我們創(chuàng)建索引的時候,字段使用的是標準分詞器

IKAnalyzer是一個開源的,基于java語言開發(fā)的輕量級的中文分詞工具包

安裝IK分詞器:

將解壓后的Elasticsearch分詞器文件夾拷貝到Elasticsearch-5.6.8\plugins下,

并重命名文件夾為analysis-ik,重啟Elasticsearch即可加載IK分詞器

IK提供了兩個分詞算法 ik_smart 和 ik_max_word

ik_smart 為最少切分? ik_max_word為最細粒度劃分

ik_smart 最少切分:

ik_max_word 最細切分:

創(chuàng)建索引時,使用分詞器 ik_max_word

因為在創(chuàng)建索引的時候規(guī)定了分詞器類型,

所以在創(chuàng)建文檔時,會把內(nèi)容根據(jù)規(guī)定的分詞器進行分詞,

然后再進行querystring查詢,或者term查詢

也是把傳入的查詢條件,根據(jù)規(guī)定的分詞器進行分詞,然后對比

集群的相關:

集群cluster: 一個集群就是由一個或多個節(jié)點組織在一起,

它們共同持有整個數(shù)據(jù),并一起提供索引和搜索功能

一個集群由一個唯一的名字標識,這個名字默認就是“Elasticsearch”


節(jié)點node: 一個節(jié)點是集群中的一個服務,

作為集群的一部分,它存儲數(shù)據(jù),參與集群的索引和搜索功能

和集群類似,一個節(jié)點也是由一個名字來標識的

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容