1.term精确查找,实际上是包含的意思
用法一:与bool,filter使用
GET ZF_en/_search
{
"query": {
"bool": {
"filter": {
"term": {
"grids": "604"
}
}
}
}
}
用法二:直接term查询
GET ZF_en/_search
{
"query": {
"term": {
"grids": {
"value": "604"
}
}
}
}
2._bulk 批量写入,注意,必须指定_id,须换行
如果_id存在,执行的是update操作
3.组合查询,bool(布尔)过滤器
一个bool(布尔)过滤器由三部分组成:
{
"bool" : {
"must" : [],
"should" : [],
"must_not" : [],
}
}
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岁的用户
日期范围查找,查询1992年出生的用户
字符串范围查询
在倒排索引中的词项就是采取字典顺序(lexicographically)排列的,这也是字符串范围可以使用这个顺序来确定的原因。
注意如果查询字段不支持按字母排序,查询无结果
6.空值查询
exists,类似sql中的is not null
查询tags不为空的
missing,类似sql中的is null