ES 常用查詢

2021-10-05 20:32:17 字數 1750 閱讀 6976

1.term精確查詢,實際上是包含的意思

用法一:與bool,filter使用

get zf_en/_search}}

}}用法二:直接term查詢

get zf_en/_search}}

}2._bulk 批量寫入,注意,必須指定_id,須換行

如果_id存在,執行的是update操作

3.組合查詢,bool(布林)過濾器

乙個bool(布林)過濾器由三部分組成:

}must:所有的語句都 必須(must) 匹配,與 and 等價。

should:至少有乙個語句要匹配,與 or 等價

must_not:所有的語句都 不能(must not) 匹配,與 not 等價。

無巢狀多條件組合查詢:

查詢性別是男或者年齡是27歲,但性別不是女的使用者

bool與term精確查詢:

查詢年齡是27歲的使用者

注意:精確查詢必須與filter一起使用

4.查詢多個精確值:

terms多個值精確搜尋,查詢條件改為陣列

查詢年齡為25或27歲的使用者

5.範圍查詢

range,類似於sql中的between and,可選範圍表示式:

gt: > 大於(greater than)

lt: < 小於(less than)

gte: >= 大於或等於(greater than or equal to)

lte: <= 小於或等於(less than or equal to)

數字範圍查詢,查詢年齡25到27歲的使用者

日期範圍查詢,查詢2023年出生的使用者

字串範圍查詢

在倒排索引中的詞項就是採取字典順序(lexicographically)排列的,這也是字串範圍可以使用這個順序來確定的原因。

注意如果查詢欄位不支援按字母排序,查詢無結果

6.空值查詢

exists,類似sql中的is not null

查詢tags不為空的

missing,類似sql中的is null

es 的常用查詢語法

term主要用於精確匹配哪些值,比如數字,日期,布林值或 not analyzed 的字串 未經分析的文字資料型別 完整的例子,hostname 字段完全匹配成 saaap.wangpos.com 的資料 terms 跟 term 有點類似,但 terms 允許指定多個匹配條件。如果某個字段指定了多...

ES常用查詢條件與Mysql對比

模擬mysql,我們需要 or and in like count sum group by order by limit 在高版本的es裡面使用了boolquery替換了filter 1 等於號 querybuilders.termquery isdel 1 termquery相當於 相當於isd...

es 父子查詢 es父子文件建立查詢

一 準備 1,elasticsearch 5.6.9 2,kibana 5.6.9 3,jdk1.8 二 建立索引,文件 1建立資料庫put database?pretty station stationname 三 填充資料 插入父文件一條記錄 插入id 1的6路post database lin...