如何對欄位進行建模
最佳實踐
其他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...