elasticsearch學習入門

2021-08-03 22:51:09 字數 1732 閱讀 1568

(由於es更新很快,本文這類快餐式的記錄僅供參考)

es的官網有比較全面的api,但我看過以後感覺api的層次還是有點亂,至少沒有mongodb的文件那麼簡單易讀。從簡單的應用開始慢慢認識es的。比如要搭建個中文新聞資訊的搜尋引擎,新聞有"標題"、"內容"、"作者"、"型別"、"發布時間"這五個字段;我們要提供"標題和內容的檢索"、"排序"、"高亮"、"統計"、"過濾"等一些基本功能。es提供了smartcn的中文分詞外掛程式,測試的話建議使用ik分詞外掛程式,也可以看看外掛程式作者給的例子。

1. 建立乙個名叫test的索引

內容為:

,"title":

,"author":

,"publish_date":

,   "category": }}

} 3. 製造並提交一些資料:

內容隨便造若干條:

4. 檢索 

內容包括幾個部分:

分頁:from/size、字段:fields、排序sort、查詢:query、過濾:filter、高亮:highlight、統計:facet

},"_score"

],"query":},}

]}},

"filter":}},

"highlight" : , 

"content" : {}}},

"facets" : }}}

這裡query我選擇構造了個標題或內容中含」中國「, 

結果如下:

,"hits" : ,

"highlight" : ,

"sort" : [ 1278720000000, 0.024621923 ]

}, ,

"highlight" : ,

"sort" : [ 1278806400000, 0.024621923 ]

}, ,

"highlight" : ,

"sort" : [ 1278892800000, 0.61871845 ]

}, ,

"highlight" : ,

"sort" : [ 1279065600000, 0.048311904 ]

}, ,

"highlight" : ,

"sort" : [ 1279152000000, 0.048311904 ]

}, ,

"highlight" : ,

"sort" : [ 1279497600000, 0.12422675 ]

} ]},

"facets" : , , ]}}

}結果包含了需要的幾個部分。值得注意的是,facet的統計是命中的結果進行統計,filter是對結果進行過濾,filter不會影響facet,如果要統計filter掉的的就要使用filter facet。

es提供了非常多的功能,json的組合比一般的sql這樣的語法要凌亂,但是通過組合能夠滿足各種複雜的應用,很多影響效能的設定也值得好好去看。對開發者而已,利用好內建api介面進行二次開發也非常必要,比如開發自己的分詞,和其他庫的同步等。es現在還在0.19.9 但是已經出現了很多官方的培訓,所以前途應該不可限量,未來可能會是檢索系統解決方案的首選。

頂 0 踩

elasticsearch 入門學習

原文 1 思考 大規模資料如何檢索 當系統資料量上了10億 100億條的時候,我們在做系統架構的時候通常會從以下角度去考慮問題 2 傳統資料庫的應對解決方案 對於關係型資料,我們通常採用以下或類似架構去解決查詢瓶頸和寫瓶頸 3 非關係型資料庫的解決方案 對於nosql資料庫,以mongdb為例,其它...

Elasticsearch 學習筆記

參考 關係型資料庫 elasticsearch 資料庫database索引index,支援全文檢索 表table型別type 資料行row文件document,但不需要固定結構,不同文件可以具有不同字段集合 資料列column字段field 模式schema 索引字段型別numeric dataty...

ElasticSearch使用學習

elasticsearch是乙個基於lucene的搜尋服務,它通過倒排索引的方法提供了全文搜尋的能力。1 插入資料 elasticsearch中存放資料的為文件,有索引及型別名,如下插入兩文件 2 檢索文件 1 檢索id為1的文件 curl x get elasticsearch.in.netwa....