撒是ElasticSearch
ElasticSearch 是一個(gè)基于 Lucene 的搜索服務(wù)器,其提供了一個(gè)分布式的多用戶能力的全文搜索引擎,基于 RestFul Api Web 接口,基于 Java 語(yǔ)言開(kāi)發(fā),在 Apache 許可下發(fā)布??梢赃B接多種語(yǔ)言,例如Java,PhP,.net 等。
快速入門
創(chuàng)建索引庫(kù)
ES 的索引庫(kù)是一個(gè)邏輯概念,包括分詞列表和文檔列表,相當(dāng)于MySql的表,MongoDB的集合。
基于Restful API 這樣使用
put http://localhost:9200/索引庫(kù)名稱
同時(shí)需要設(shè)置需要的請(qǐng)求體
{
"settings":{
"index":{
"number_of_shards":1,
"number_of_replicas":0
}
}
}
number_of_shards 分片數(shù)量
number_of_replicas 副本數(shù)量
同時(shí),還可以使用 head 插件創(chuàng)建新的索引

創(chuàng)建映射
在索引中,每個(gè)文檔都包含了一個(gè)或多個(gè) fieID,創(chuàng)建映射就是在索引庫(kù)中創(chuàng)建 fieID 的過(guò)程。
其對(duì)比如下
文檔(Document)----------------Row記錄
字段(Field)-------------------Columns列
其格式如下
post http://localhost:9200/索引庫(kù)名稱/_mapping
為 xedu_course 索引庫(kù)創(chuàng)建對(duì)應(yīng)的映射,共包括三個(gè)字段:
name:課程名稱
description:課程描述
studymondel:課程狀態(tài)

在 head 中查看

創(chuàng)建文檔
相當(dāng)于創(chuàng)建 MySql 中的記錄
其格式如下
put 或 Post http://localhost:9200/索引庫(kù)名稱/_doc/id值
# 如果不指定id值ES會(huì)自動(dòng)生成ID

在 head 中查看

搜索文檔
根據(jù)課程 id 查詢文檔
get http://192.168.116.129:9200/xedu_course/_doc/4028e58161bcf7f40161bcf8b77c0000

查詢所有記錄
get http://192.168.116.129:9200/xedu_course/_doc/_search

查詢名稱中包括 bootstrap 關(guān)鍵字的的記錄
get http://192.168.116.129:9200/xedu_course/_doc/_search?q=name:bootstrap
查詢學(xué)習(xí)模式為 201001 的記錄
get http://192.168.116.129:9200/xedu_course/_doc/_search?q=studymodel:201001
分詞器
索引中保存的是一個(gè)個(gè)的詞,當(dāng)去搜索的時(shí)候,使用關(guān)鍵字去匹配索引中的值,找到關(guān)聯(lián)的文檔。
測(cè)試分詞器
post http://192.168.116.129:9200/_analyze
{"text":"測(cè)試分詞器,后邊是測(cè)試內(nèi)容:spring cloud實(shí)戰(zhàn)"}

使用 ik 分詞器實(shí)現(xiàn)中文詞組分詞
post http://192.168.116.129:9200/_analyze
{"text":"測(cè)試分詞器,后邊是測(cè)試內(nèi)容:spring cloud實(shí)戰(zhàn)","analyzer":"ik_max_word" }
映射
查詢
查詢所有索引的映射
get http://192.168.116.129:9200/_mapping

創(chuàng)建
post http://localhost:9200/索引庫(kù)名稱/_mapping
更新
可以添加字段,不能更新已有的字段
刪除
通過(guò)刪除索引來(lái)刪除映射