ElasticSearch使用規范-查詢規范
查詢規范建議
1)定義好mappings和settings,不同的數據類型查詢效率不一樣,建議只需做精確查詢以及范圍查詢的字段設置為keyword類型。對于要進行全文檢索的字段設置合理的分詞器。
2)對于只需要查詢數據結果而不需要結果的相關度計算的情況,使用filter query能大幅提升你的查詢效率。例如過濾某車牌和號碼。
3)避免一次性取出大量的數量:elasticsearch被設計為一個搜索引擎,這使得它非常擅長獲取與查詢匹配的最優文檔,但是不適合用來檢索與特定查詢匹配的所有文檔。?Elasticsearch為了避免深分頁,不允許使用分頁(from&size)查詢10000條以后的數據,如果需要這樣做,請確保使用Scroll API。
4)盡量細化查詢條件,查詢的條件越細,查詢效率越高。
5)選擇合適的查詢類型,比如term查詢效率相對會高一些。
6)路由
Elasticsearch寫入文檔時,文檔會通過一個公式路由到一個索引中的一個分片上。默認公式如下:
shard_num = hash(_routing) % num_primary_shards
_routing字段的取值,默認是_id字段,可以根據業務場景設置經常查詢的字段作為路由字段。例如可以考慮將用戶id、地區作為路由字段,查詢時可以過濾不必要的分片,加快查詢速度。
7)避免使用wildcard模糊匹配查詢
Elasticsearch默認支持通過*?正則表達式來做模糊匹配,數據量級別達到TB+甚至更高之后,模糊匹配查詢通常會耗時比較長,甚至可能導致內存溢出,卡死乃至崩潰宕機的情況。所以數據量大的情況下,不要使用模糊匹配查詢。
EI企業智能 Elasticsearch FusionInsight
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。