ElasticSearch 常用的查詢過濾語句

2021-08-04 16:18:56 字數 2283 閱讀 3313

query 和  filter 的區別請看: 

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

} } } }

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

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

完整的例子,所有http的狀態是 302 、304 的, 由於es中狀態是數字型別的字段,所有這裡我們可以直接這麼寫。: } 

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

}範圍操作符包含:

乙個完整的例子, 請求頁面耗時大於1秒的資料,upstream_response_time 是 nginx 日誌中的耗時,es中是數字型別。 } 

} }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": [ 

}, }} 

] } 

}上面內容來自: 

elasticsearch 查詢(match和term) 

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

參考: 

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

get /my_index/address/_search  } 

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

}get /my_index/address/_search  } 

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

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

}參考: 

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

}參考 : 

更多的查詢命令,可以看: 

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

get /my_index/my_type/_search

}}

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

但只保留含有了所有搜尋詞條的文件,並且詞條的位置要鄰接。乙個針對短語quick fox的查詢不會匹配

我們的任何文件,因為沒有文件含有鄰接在一起的quick和box詞條。

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

"match": 

}

參考:

分類: 

elasticsearch

elasticsearch常用操作

es模板postman常用操作 類別方法 url描述 查詢模板get http ip 9200 template template 查詢模板中template開頭的所有模板 為萬用字元 查詢特定的模板get http ip 9200 template vias business查詢名為vias bu...

elastic search常用操作

常用操作 查詢所有索引及狀態 get cat indices?v 查詢productsearchuat索引,預設返回一條資料 get productsearchuat search 知道product id 查es索引 get productsearchuat search 通過企業名稱查詢企業 g...

elasticsearch常用curl鏈結

1 測試es是否啟動成功 pretty引數是為了讓查詢結果更方便閱讀 3 建立megacorp索引 employee型別 id為1的資料 索引名必須小寫,不能以下劃線開頭,不能包含逗號。型別命名可以是大寫或者小寫,但是不能以下劃線或者句號開頭,不應該包含逗號,並且長度限制為256個字元。如果該id的...