es資料建模配置相關介紹
是何種型別?
是否需要檢索
是否需要排序和聚合分析
是否需要另行儲存?
es資料建模例項
nested_object
parent_child
nested_vs_parent_child
reindex
其他建議
·英文為data modeling ,為建立資料模型的過程
·資料模型( data model )
.概念模型
·邏輯模型
·物理模型
es是基於lucene以倒排索引為基礎實現的儲存體系,不遵循關係型資料庫中的正規化約定
multifields多欄位
·字串型別
·列舉型別
·數值型別
·其他型別
完全不需要檢索、排序、聚合分析的字段
不需要檢索的字段
需要檢索的字段,可以通過如下配置設定需要的儲存粒度
不需要排序或者聚合分析功能
是否需要專門儲存當前欄位的資料?
·部落格文章 blog_index
es中的設計:
問題:查詢結果不是預期的
comments預設是object array ,儲存結構類似下面的形式:
nested object可以解決這個問題:
再次進行查詢即是我們想要的結果:
nested object array的儲存結構類似下面的形式:可以解決這個問題
es還提供了類似關聯式資料庫中join的實現方式,使用join資料型別實現
常見 query語法包括如下幾種:
-parent_id返回某父文件的子文件
-has_child返回包含某子文件的父文件
-has_parent返回包含某父文件的子文件
指重建所有資料的過程,一般發生在如下情況:
index設定變更,比如分片數更改等
遷移資料
es提供了現成的api用於完成該工作
資料重建的時間受源索引文件規模的影響,當規模越大時,所需時間越多,此時需要通過設定url引數wait_for_completion為false來非同步執行, es以task來描述此類執行任務.
es提供了task api來檢視任務的執行進度和相關資料
·欄位過多主要有如下的壞處:
設定變化
欄位會變少:
查詢會變得複雜:
雖然通過這種方式可以極大地減少field數目,但也有一些明顯的壞處
·一般欄位過多的原因是由於沒有高質量的資料建模導致的,比如dynamic設定為true
·考慮拆分多個索引來解決問題
Elasticsearch 資料搜尋篇
curl localhost 9200 cat indices?v health index pri rep docs.count docs.deleted store.size pri.store.size yellow bank 5 1 1000 0 424.4kb 424.4kb es提供了兩...
Elasticsearch篇之入門
文件document 類似於資料庫中的一條記錄 使用者儲存在es中的資料文件 索引index 類似於資料庫中的乙個表 由具有相同欄位的文件列表組成 type在6.0之後不允許在index下面建立多個type,在未來會去除type 節點node 乙個elasticsearch的執行例項,是集群額構成單...
Elasticsearch 索引優化篇 3
es索引優化篇主要從兩個方面解決問題,一是索引資料過程 二是檢索過程。索引資料過程我在上面幾篇文章中有提到怎麼建立索引和匯入資料,但是大家可能會遇到索引資料比較慢的過程。其實明白索引的原理就可以有針對性的進行優化。es索引的過程到相對lucene的索引過程多了分布式資料的擴充套件,而這es主要是用t...