8 Elasticsearch 篇之資料建模

2021-09-30 19:16:10 字數 2203 閱讀 5300

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...