0. 前言
查询字符串有一点写SQL的影子了,相对来说查询比较方便。查询分为三层嵌套结构,首先最外层的query,表示查询上下文,query_string地位跟match、term相同,表示查询类型,内层的query表示查询条件。
通过query_string组合查询条件要比使用纯json嵌套结构方便太多太多了。本文主要讲述如何使用query_string的语法完全替代纯json的语法。
1.OR条件查询
下面使用的是or条件进行查询,即地区要么是山东省东营市要么是宁夏回族自治区吴忠市,但是必须要注意的是OR和后面要讲的and都必须要大写
{
"track_total_hits":true,
"query":{
"query_string":{
"default_field":"device.地区",
"query":"东营市 OR 吴忠市"
}
}
}
2. AND条件查询
and条件插件就是条件连接词为and
{
"track_total_hits":true,
"query":{
"query_string":{
"default_field":"device.地区",
"query":"吴忠市 AND 忠市"
}
}
}
3. 多字段组合查询
如果查询字段是多个,那么字段需要写fields,而不是default_field,并且是一个数组结构。 可能比较疑惑,那query条件咋写呢。这个无所谓,比如我们要查<device.地区>字段为99000844071815和<device.deviceId>字段为宁夏回族自治区