ElasticSearch搜尋引擎學習 一

2021-09-17 05:29:13 字數 2033 閱讀 5797

使用postman或curl這樣的工具建立:

put http://localhost:9200/索引庫名稱

}}

,

"description": ,

"studymodel":

}}

es中的文件相當於mysql資料庫表中的記錄。

傳送:put 或post http://localhost:9200/索引庫名稱/型別名稱/id值

(如果不指定id值es會自動生成id)

4.1根據課程id查詢文件

get http://localhost:9200/索引庫名稱/型別名稱/id值

4.2查詢所有記錄

傳送 get http://localhost:9200/索引庫名稱/型別名稱/_search

4.3查詢名稱中包括spring 關鍵字的的記錄

傳送:get http://localhost:9200/索引庫名稱/型別名稱/_search?q=name:bootstrap

4.4查詢學習模式為201001的記錄

傳送 get http://localhost:9200/索引庫名稱/型別名稱/_search?q=studymodel:201001

在新增文件時會進行分詞,索引中存放的就是乙個乙個的詞(term),當你去搜尋時就是拿關鍵字去匹配詞,最終

找到詞關聯的文件。

測試當前索引庫使用的分詞器:

post 傳送:localhost:9200/_analyze

使用ik分詞器可以實現對中文分詞的效果

解壓,並將解壓的檔案拷貝到es安裝目錄的plugins下的ik目錄下

ik分詞器有兩種分詞模式:ik_max_word和ik_smart模式。

1、ik_max_word

會將文字做最細粒度的拆分,比如會將「中華人民共和國人民大會堂」拆分為「中華人民共和國、中華人民、中華、

華人、人民共和國、人民、共和國、大會堂、大會、會堂等詞語。

2、ik_smart

會做最粗粒度的拆分,比如會將「中華人民共和國人民大會堂」拆分為中華人民共和國、人民大會堂

如果要讓分詞器支援一些專有詞語,可以自定義詞庫。

ik分詞器自帶乙個main.dic的檔案,此檔案為詞庫檔案

6.1 對映維護方法

1、查詢所有索引的對映:

2、建立對映

10.1字串包括text和keyword兩種型別:

1、text

1)analyzer

通過analyzer屬性指定分詞器。

下邊指定name的字段型別為text,使用ik分詞器的ik_max_word分詞模式

"name":
對於ik分詞器建議是索引時使用ik_max_word將搜尋內容進行細粒度分詞,搜尋時使用ik_smart提高搜尋精確性
"name":
10.2 index

通過index屬性指定是否索引。

預設為index=true,即要進行索引,只有進行索引才可以從索引庫搜尋到。

為false。

刪除索引,重新建立對映,將pic的index設定為false,嘗試根據pic去搜尋,結果搜尋不到資料

"pic":
10.3 store

是否在source之外儲存,每個文件索引後會在 es中儲存乙份原始文件,存放在"_source"中,一般情況下不需要設定

store為true,因為在_source中已經有乙份原始文件了

Elasticsearch 條件搜尋

es提供了兩種搜尋的方式 請求引數方式和請求體方式。請求引數方式 curl localhost 9200 bank search?q pretty 其中bank是查詢的索引名稱,q後面跟著搜尋的條件 q 表示查詢所有的內容 請求體方式 推薦這種方式 curl xpost localhost 9200...

Elasticsearch 深入搜尋

結構化搜尋 structured search 是指有關探詢那些具有內在結構資料的過程 在結構化查詢中,我們得到的結果 總是非是即否,要麼存於集合之中,要麼存在集合之外。結構化查詢不關心檔案的相關度或評分 它簡單的對文件包括或排除處理。當進行精確值查詢時,我們會使用過濾器 filters term ...

elasticsearch 搜尋方式

宣告 本文僅僅只是記個筆記 搜尋方式 took 耗費了幾毫秒 timed out 是否超時,這裡沒有 shareds 資料拆成1哥分片,所以對於搜尋請求,會打造所有的primary shard 或者是它的某個replica shard也可以 hits.total 查詢結果的數量,這裡有 3 個 do...