ES資料建模最佳實踐

2021-10-05 22:47:53 字數 1808 閱讀 9093

如何對欄位進行建模

最佳實踐

其他demo

參考資料建模是對真實世界進行描述的一種工具和方法,實現對現實世界的對映

keyword

使用於 filter, sorting 及 aggregations

多欄位型別

數值型別

列舉型別

如果不需要檢索

如不需要排序或者聚合分析,

更新頻繁,聚合查詢頻繁的 keyword 型別的字段

es 預設開啟 dynamic,可選值如下:

在 dynamic開啟的情況下,可能會導致資料字段膨脹。避免導致字段膨脹的可選方法如下:

###### cookie service

put cookie_service/_doc/1

}put cookie_service/_doc/2

}delete cookie_service

#使用 nested 物件,增加key/value

put cookie_service

, "datevalue": ,

"keywordvalue": ,

"intvalue": }},

"url": }}

}}}

##寫入資料,使用key和合適型別的value欄位

put cookie_service/_doc/1

,

]}put cookie_service/_doc/2

,

]}# nested 查詢,通過bool查詢進行過濾

post cookie_service/_search

}, }}

]}}}

}}

上述demo為何使用 nested原因可檢視 此部落格

可以直接利用 ingest 或者 分詞 等技術,避免使用 wildcard

# index 一本書的資訊

put books/_doc/1

delete books

#優化字段型別

put books

, "cover_url" : ,

"description" : ,

"public_date" : ,

"title" : }}

}}

}#cover url index 設定成false,無法對該字段進行搜尋

post books/_search}}}

#cover url index 設定成false,依然支援聚合分析

post books/_search}}}

delete books

#新增 content欄位。資料量很大。選擇將source 關閉

put books

, "properties" : ,

"cover_url" : ,

"description" : ,

"content" : ,

"public_date" : ,

"title" :

},"store": true}}

}}# index 一本書的資訊,包含content

put books/_doc/1

#查詢結果中,source不包含資料

post books/_search

{}#搜尋,通過store 字段顯示資料,同時高亮顯示 conent的內容

post books/_search

},"highlight":

}}}

ES資料建模最佳實踐

優先考慮普通物件,其次考慮nested巢狀物件,再考慮關聯物件。避免過多的字段,欄位過多不易維護,且影響集群效能。可以用nested巢狀物件結合key val方式把橫向儲存的資料轉為縱向儲存。避免字首正則匹配,嚴重影響效能。可以把text轉為物件的方式儲存,便於多種方式檢索。put cookie s...

es6 最佳入門實踐 12

在es5中,物件導向我們通常寫成這樣 function person name,age person.prototype.showname function let p new person xiaoqiang 10 p.showname 上面這種寫法與傳統的物件導向寫法有很大的不同,讓學習過其他物...

es6 最佳入門實踐 10

generator函式是es6提供的一種非同步程式設計解決方案。在它的內部封裝了多個狀態,因此,又可以理解為一種狀態機,執行generator函式後返回乙個迭代器物件,使用這個迭代器物件可以遍歷出generator函式內部的狀態 generator函式和傳統函式的不同點有 1 函式定義的時候,fun...