ElasticSearch 使用小結

2022-05-26 02:36:12 字數 1278 閱讀 7195

要做個元資料服務,包括儲存和查詢。元資料除了一些基本欄位外,其他格式是自由的,儲存輸入為乙個json形式。比如下面是乙個檔案物件的元資料:

而下面這個是表示資料表的元資料:

由於輸入格式可變且以json形式表示,雖然系統內有型別定義,說明了各個欄位的取值型別,但是一些如list或者object之類勉強使用mysql還是挺累得(需要手動編寫**對映到具體表上的字段)。這從本質上來說json物件輸入是層次形式的,而關係型資料如mysql中的資料表式二維平面形式的。

如果單做key-value儲存的話使用mongodb感覺會非常好,完全的schema free,並且也支援一些基本的查詢。但是這個元資料服務還要提供乙個搜尋功能,通常實現這種搜尋功能都是比較煩人的事情,尤其是要支援那些模糊查詢。一般來說模糊查詢想在大規模資料集上取得比較好的查詢效率的話,都是需要建立倒排索引的。這方面mongodb也是支援的,不過後來使用的elasticsearch它的查詢功能就顯的比較弱。其實一開始我是拒絕的,感覺es就是個做搜尋的,相對來說不適合做類似業務儲存這類實時性要求比較高的儲存。不過它提供的搜尋過濾和聚集統計功能真的非常爽,再也不用費盡力去寫那些查詢組合的sql了。但在資料儲存方面確實比mongodb煩很多。

任何查詢要提供比暴力搜尋好的效能,都需要用到索引,es當然是不能例外的。而es中的名稱index和我們所說的索引有些不同,它表示的是一系列欄位的索引集合,而不是不是某個欄位上的單個索引。因為es的儲存是面向文件的,它的index意為對文件建立的索引。es的index下面可以有不同的type,對應不同的文件型別。

$ curl  -xpost '10.214.208.138:9200/mass/demo' -d''

, "name" : ,

"version" : }}

}}}

$ curl  -xdelete '10.214.208.138:9200/mass'

$ curl -xpost '10.214.208.138:9200/mass'

有些字段雖然是文字型別但我們卻不想使用分詞過程,因為只會進行一些精確查詢比如一些列舉字段。可以指定index:not_analyzed

誰在使用Elasticsearch

github github使用elasticsearch搜尋20tb的資料,包括13億的檔案和1300億行的 這個不用介紹了吧,碼農們都懂的,github在2013年1月公升級了他們的 搜尋,由solr轉為elasticsearch,目前集群規模為26個索引儲存節點和8個客戶端節點 負責處理搜尋請求...

ElasticSearch使用入門

es的安裝 啟動 cd.elasticsearch 2 4 3 bin elasticsearch bin elasticsearch d 後台執行 es安裝驗證 注意 預設啟動的時候es繫結的網路ip是本機127.0.0.1,只能通過這個ip訪問 兩種修改方式 1 修改config elastic...

ElasticSearch使用學習

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