1. 程式人生 > 實用技巧 >ElasticSearch學習(二)——ik分詞及查詢操作

ElasticSearch學習(二)——ik分詞及查詢操作

IK分詞器外掛

分詞:即把一段中文或者別的劃分成一個個的關鍵字,在搜尋時將自己的資訊進行分詞,會把資料庫中或者索引庫中的資料進行分詞,然後進行一個匹配操作,預設的中文分詞是將每個詞看成一個詞,如“李小狼”會被分為“李”,“小”“狼”,這顯然是不符合要求的,我們需要安裝中文分詞器ik來解決這個問題。
IK提供了兩個分詞演算法:ik_smart和ik_max_word,其中ik_smart為最少切分ik
_max_word為最細力度劃分

下載地址:https://github.com/medcl/elasticsearch-analysis-ik.

下載完成後在es的plugins目錄下新建一個資料夾ik將解壓後的檔案放置到裡面

在這裡插入圖片描述
重啟es
在這裡插入圖片描述
開啟kibana進行測試
對少年先鋒隊進行分詞解析
在這裡插入圖片描述
使用最小顆粒切分情況如下(窮盡所有可能)(根據字典來)
在這裡插入圖片描述

字典配置

在這裡插入圖片描述

新增自己的字典項,具體格式可以參考檔案中其他dic檔案格式,注意編碼格式修改後儲存需重新啟動es
在這裡插入圖片描述

Restful風格命令

基本rest命令說明,關於索引的基本操作

methodurl地址說明
PUTlocalhost:9200/索引名稱/型別名稱/文件id建立文件(指定文件id)
POSTlocalhost:9200/索引名稱/型別名稱建立文件(隨機文件id)
POSTlocalhost:9200/索引名稱/型別名稱/文件id/_update修改文件
DELETElocalhost:9200/索引名稱/型別名稱/文件id刪除文件
GETlocalhost:9200/索引名稱/型別名稱/文件id查詢文件通過文件id
POSTlocalhost:9200/索引名稱/型別名稱/_search查詢所有資料

基礎測試:先新建一個索引
使用put指定文件id方式

PUT /索引名/型別/id
{請求體}

在這裡插入圖片描述
在head中檢視相關資訊,發現相關索引已被建立,資料也在
在這裡插入圖片描述
也可以直接只建立索引,並賦予對應索引相關屬性,詳細屬性設定可以自行去官網查詢,如此處建立一個test2的索引
在這裡插入圖片描述
同理,可以通過GET命令檢視對應資訊(索引或者具體文件的)
額外命令:
GET _cat/indices?v 可以檢視一些es中的預設配置

修改的話可以使用PUT命令不帶update的,但要注意這種情況下如果請求體中的資料有遺漏則更新後的資料該值也不存在,即若修改年齡,請求體put中沒有name則最終結果中name將遺失,推薦使用put 。。/_update命令對其進行修改

關於文件的基本操作

在說查詢前我們先造幾條資料用來備用:

  1. PUT 插入資料
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
  2. GET獲取資料
    在這裡插入圖片描述
  3. 更新資料PUT
    在這裡插入圖片描述
    注意修改資料後,資料的version號改變
  4. POST _update更新資料
    在這裡插入圖片描述

簡單的查詢

在這裡插入圖片描述
q即為query,當然若為模糊匹配也是可以查到的
在這裡插入圖片描述
注意查出來的結果當中有一項score的數值,該項為結果與查詢條件的匹配程度,分數越高則匹配度越高

複雜查詢

再插入一條資料以供測試
在這裡插入圖片描述

查詢條件在請求體中書寫,如精確匹配match(此處的精確匹配指的是欄位,如name欄位中帶有李的資料)
在這裡插入圖片描述
讓結果顯示指定欄位_source
在這裡插入圖片描述
排序操作,使用sort引數,order指定升序還是降序
在這裡插入圖片描述
分頁操作,from(從第幾條資料開始),size引數(返回多少條資料)
在這裡插入圖片描述

布林值查詢

must,多條件查詢,相當於sql語句where中的and
在這裡插入圖片描述
同樣的有and就肯定有or,在es中or為should
在這裡插入圖片描述
此時就查出來兩條資料了
查詢name不是李小狼的使用must_not
在這裡插入圖片描述
對查詢到的資料進行過濾,filter,如範圍查詢為
在這裡插入圖片描述
精確查詢!term
term查詢是直接通過倒排索引指定的詞條程序精確查詢的!

  • term:直接查詢精確的
  • match:會使用分詞器解析(先分析文件,然後通過分析的文件進行查詢)
    使用方法和match類似就不再演示
    高亮查詢
    highlight
    在這裡插入圖片描述