前言
elasticsearch 下文簡稱es,本文基于es6所書寫。
es作為非關系型數據庫,基于倒排索引,集群化強大的索引性能,支持幾十億級別數據索引被各大公司所使用,作為一款性能極佳的數據庫,能夠掌握,絕對能夠提高程序員的核心競爭力。
本文書寫背景是由于好基友的要求,所以在這里簡單的分享es的head操作,對沒有接觸到es的同學而言,因為沒有截圖,所以看起來會有點暈暈的喔,但是如果你面前有head的操作界面,那么應該是會很清楚的,和大家一起學習,會持續更新。操作級別,沒有原理和api。
head是es的數據可視化的一款非常流行的工具,大部分同學只會具備查詢權限,由于公司里面各個部門使用es十分頻繁,所以掌握head的基本查詢操作是非常重要的。
正文
第一部分:
must:所選擇的條件必須匹配,選擇多個即 且 的意思;
must_not:所選擇的條件必須不匹配,選擇多個即 且 的意思;
should:所選擇的條件應該匹配,選擇多個即 或 的意思;
第二部分:
term:嚴格匹配條件,所查詢的字段內容要與填入查詢框搜索值一致;
wildcard:通配符查詢,* 表示全匹配,? 表示單一匹配,etc: aaa* 或者 a?b;
prefix:前綴匹配,搜索框如果輸入aa,那么可能匹配到的字段值為 aab,aavb等;
fuzzy? min_similarity:彈性模糊匹配,有兩個搜索框,第一個搜索框為搜索匹配值,會自動糾錯,比如輸入 ggjk,那么可能會匹配到ggjo,第二個框為最小相似度,采用的算法是Damerau-Levenshtein(最佳字符串對齊)算法,不建議填寫這個框,我到發稿前也是被搞的頭皮發麻,等我完全吃透再更新;
fuzzy?max_expansions :彈性模糊匹配,有兩個搜索框,第一個搜索框為搜索匹配值,會自動糾錯,比如輸入 ggjk,那么可能會匹配到ggjo,第二個框是最大擴展匹配數,比如是1,那么ggjk只會隨機模糊匹配到一種可能結果,即使它會出現2種或者更加多,也只會搜索一種;
range:范圍查詢,gt為大于,gte為大于等于,lt小于,lte小于等于,所搜索的字段值在兩個搜索框標識數值之間;
query_string:字符片段查詢,如果是數字,則嚴格匹配數字,如果是字符串,則按照自身或者分片詞匹配;
text:分片詞查詢,等確定后更新;
missing:查詢沒有定義該字段或者該字段值為null的數據;