最近在搞ES版本升级,从2.x升级到7.x。总结下2.x的查询一遍后续重构代码。
结构化查询
- 精确查询 term: 查询只对倒排索引的词项精确匹配。切记term是包含而不是相等的意思
- 精确查询多个 terms:后跟数组参数。可以看作是多个term组合查询。
- 组合过滤查询 bool:bool可嵌套,构造复杂的filter过滤器。过滤器做二元判断,文档是否应该出现在结果中。
{
"bool" : {
"must" : [], ==and
"should" : [], == or
"must_not" : [], == not
}
}
- 范围查询 range:可作用于数字,日期,字符串。
gt: > 大于(greater than)
lt: < 小于(less than)
gte: >= 大于或等于(greater than or equal to)
lte: <= 小于或等于(less than or equal to)
- 处理 Null:null, [] (空数组)和 [null] 所有这些都是等价的,它们无法存于倒排索引中。
1.存在查询exists 类似 is not null
2.缺失查询missing 类似 is null
</