本文主要记录es的查询过滤的使用。

使用过滤器

过滤器不影响评分,而评分计算让搜索变得复杂,而且需要CPU资源,因而尽量使用过滤器,而且过滤器容易被缓存,进一步提升查询的整体性能。

post_filter(先查询再过滤)

{
"query": {
"match":{"title":"Catch-22"}
},
"post_filter":{
"term":{"year":}
}
}

filtered(先过滤再查询,速度快)

{
"query": {
"filtered": {
"query": {
"match": {
"title": "Catch-22"
}
},
"filter": {
"term": {
"year":
}
}
}
}
}

这种方式在2.2版本被废弃调用,改用bool的方式

{
"query": {
"bool": {
"must": {
"match": {
"title": "Catch-22"
}
},
"filter": {
"term": {
"year":
}
}
}
}
}

过滤器种类

范围过滤器

{
"post_filter":{
"range":{
"year":{
"gte":,
"lte":
}
}
}
}

exists过滤器

{
"post_filter":{
"exists":{
"field":"year"
}
}
}

missing过滤器

过滤掉给定字段有值或缺失的文档

{
"post_filter":{
"missing":{
"field":"year",
"null_value":,
"existence":true
}
}
}

脚本过滤器

过滤掉发表在一个世纪以前的书

{
"post_filter":{
"script":{
"script":"now - doc[‘year‘].value > 100",
"params":{"now":}
}
}
}

类型过滤器

当查询运行在多个索引上时,有用

{
"post_filter":{
"type":{
"value":"book"
}
}
}

限定过滤器

限定每个分片返回的文档数

{
"post_filter":{
"limit":{
"value":
}
}
}

标识符过滤器

比如要指定标识符为1,2,3的文档

{
"post_filter":{
"ids":{
"type":["book"],
"values":[,,]
}
}
}

组合过滤器

{
"query": {
"bool": {
"must": {
"range": {
"year": {
"gte": ,
"lte":
}
}
},
"should": {
"term": {
"available": true
}
},
"boost":
}
}
}

最新文章

  1. java中hashMap的排序
  2. 从几个方向进行Web渗透测试
  3. URAL 1160 Network(最小生成树)
  4. 数组工具类 - ArrayUtil.java
  5. 【转】android新建项目时 出现appcompat_v7工程错误和红色感叹号
  6. html5常用英语单词
  7. onchange、onclick、onblur等事件区别
  8. 常见JedisConnectionException异常分析
  9. ASP.NET CORE入门之读取Json配置文件
  10. ScrollView嵌套ListView后,进入页面不从顶部开始显示的问题解决
  11. git 分支管理规范
  12. ie11开发者模式打开空白
  13. Solve Error: Library not loaded: @rpath/RoutingHTTPServer.framework/RoutingHTTPServer
  14. tail -f 实时查看日志文件 linux查看日志后100行
  15. openCV学习——一、图像读取、显示、输出
  16. TCP 流量控制、拥塞控制
  17. 【Java】 大话数据结构(8) 串的模式匹配算法(朴素、KMP、改进算法)
  18. PHP--面向对象的设计原则
  19. django中日志配置
  20. Integer.parseInt()和Integer.valueOf()方法详解

热门文章

  1. ios开发之--字符串局部改变颜色
  2. java的代理和动态代理简单测试
  3. Android系统启动流程
  4. codeforces水题100道 第二十题 Codeforces Round #191 (Div. 2) A. Flipping Game (brute force)
  5. Android开发懒人库 -- ButterKnife (转载)
  6. Subversion权限详解
  7. 转载:C/C++关于string.h头文件和string类
  8. 浏览器缓存机制介绍 + 常用 http 状态码
  9. C# 泛型的简单讲解和应用
  10. LeetCode 14 Longest Common Prefix(最长公共前缀)