ES的Query DSL語句介紹

2021-08-28 11:54:06 字數 1839 閱讀 9872

term主要用於精確匹配哪些值,比如數字,日期,布林值或 not_analyzed 的字串(未經切詞的文字資料型別):}}

完整的例子, hostname 字段完全匹配成 saaap.wangpos.com 的資料:}}

terms 跟 term 有點類似,但 terms 允許指定多個匹配條件。 如果某個字段指定了多個值,那麼文件需要一起去做匹配:

}完整的例子,所有文章標題是 內蒙古 或黑龍江的 的,}}

range過濾允許我們按照指定範圍查詢一批資料:}}

範圍操作符包含:

乙個完整的例子, 查詢發表時間在2017-06-25和2017-07-01之間的資料}}

}exists 和 missing 過濾可以用於查詢文件中是否包含指定欄位或沒有某個字段,類似於sql語句中的is_null條件.

}這兩個過濾只是針對已經查出一批資料來,但是想區分出某個字段是否存在的時候使用。

bool 過濾可以用來合併多個過濾條件查詢結果的布林邏輯,它包含一下操作符:

這些引數可以分別繼承乙個過濾條件或者乙個過濾條件的陣列:

},"must_not": },

"should": [},}

]}}可以查詢到所有文件,是沒有查詢條件下的預設語句。

}此查詢常用於合併過濾條件。 比如說你需要檢索所有的郵箱,所有的文件相關性都是相同的,所以得到的_score為1.

match查詢是乙個標準查詢,不管你需要全文本查詢還是精確查詢基本上都要用到它。

如果你使用 match 查詢乙個全文本欄位,它會在真正查詢之前用分析器先分析match一下查詢字元:}}

如果用match下指定了乙個確切值,在遇到數字,日期,布林值或者not_analyzed 的字串時,它將為你搜尋你給定的值:}}

}match查詢只能就指定某個確切字段某個確切的值進行搜尋,而你要做的就是為它指定正確的欄位名以避免語法錯誤。

multi_match查詢允許你做match查詢的基礎上同時搜尋多個字段,在多個欄位中同時查乙個:}}

查詢文章標題和內容包含烏魯木齊的資料

bool 查詢與 bool 過濾相似,用於合併多個查詢子句。不同的是,bool 過濾可以直接給出是否匹配成功, 而bool 查詢要計算每乙個查詢子句的 _score (相關性分值)。

以下查詢將會找到 title 欄位中包含 "how to make millions",並且 "tag" 字段沒有被標為 spam。 如果有標識為 "starred" 或者發布日期為2023年之前,

},"must_not": },

"should": [

},}}]}

}使用標準的shell萬用字元查詢

以下查詢能夠匹配包含w1f 7hw和w2f 8hw的文件:

"query": }}

又比如下面查詢 hostname 匹配下面shell萬用字元的:}}

get /my_index/address/_search}}

這個正規表示式的規定了詞條需要以w開頭,緊跟著乙個0到9的數字,然後是乙個或者多個其它字元。

下面例子是所有以 wxopen 開頭的正則}}

以什麼字元開頭的,可以更簡單地用 prefix,如下面的例子:}}

當你需要尋找鄰近的幾個單詞時,你會使用match_phrase查詢:}}

和match查詢類似,match_phrase查詢首先解析查詢字串來產生乙個詞條列表。然後會搜尋所有的詞條,

但只保留含有了所有搜尋詞條的文件,並且詞條的位置要鄰接。

match_phrase查詢也可以寫成型別為phrase的match查詢:}}

}搜尋結果如

ES查詢語句

1.萬用字元查詢keyword欄位 不會建分詞索引,會建索引 2.刪除並釋放磁碟空間 post monitor delete by query 1.查詢你要刪除的doc資料 以2019 5 18 00 00 00時間節點和time欄位為例 具體 如下 monitor search post 2.手動...

ES簡單介紹

elasticsearch簡寫es,es是乙個高擴充套件 開源的全文檢索和分析引擎,它可以準實時地快速儲存 搜尋 分析海量的資料。es除了全文搜尋引擎之外,還可以這樣描述它 1 分布式的實時檔案儲存,每個欄位都被索引並可被搜尋 2 分布式的實時分析搜尋引擎 3 可以擴充套件到成百上千臺伺服器,處理p...

控制語句的介紹

流程控制語句是用來控制程式中各語句執行順序的語句,流程控制語句是整個程式的核心。它在程式中起到的作用是控制程式中各語句執行的順序。控制語句中呢可以分為三類,實際是兩類。第一類是順序結構 第二類是選擇結構 第三類是迴圈結構。1.順序結構 代表 先執行a,在執行b 的邏輯。它就是乙個天然的順序它就是給你...