我们已经介绍了如何使用不同的条件查询来构建查询并搜索数据。我们还熟知了评分,它告诉我们在给定的查询中,哪些文档更重要以及查询文本如何影响排序。然而,有时我们可能要在不影响最后分数的情况下,选择索引中的某个子集,这就要使用过滤器。

如果可以,应该尽可能使用过滤器。过滤器不影响评分,而得分计算让搜索变得复杂,而且需要CPU资源

1:范围过滤器

/**
* 范围过滤器
*
*/

@Test
public void rangeQueryFilter(){
   SearchRequestBuilder builder = client.prepareSearch("blog").setTypes("document");
   SearchResponse searchResponse = builder.setPostFilter(QueryBuilders.rangeQuery("id").from(1).to(3)
  ).get();
   SearchHits hits = searchResponse.getHits();//获取数据的结果集对象
   //遍历
   printSearch(hits);

}

2:布尔过滤器

/**
* 布尔过滤器
* */
@Test
public void boolQueryFilter(){
   SearchRequestBuilder builder = client.prepareSearch("blog").setTypes("document");
   SearchResponse searchResponse = builder.setPostFilter(
           QueryBuilders.boolQuery()
                  .must(QueryBuilders.termQuery("title", "服务器"))
                  .should(QueryBuilders.termQuery("comment", "服务器"))
  ).get();
   SearchHits hits = searchResponse.getHits();
   //遍历
   printSearch(hits);
}

es之过滤器的更多相关文章

  1. ES 学习总结

    ES 总结: es 是基于lucene的, 是java 实现的, 很多概念和lucene是相同的 索引-- 对应数据库的表,mongoDB中的集合 文档,由字段组成, 一个字段可以出现多次. 字段,其 ...

  2. [ES] 基础概念

    Elasticsearch是基于Luence实现的一款搜索引擎,支持分布式和集群,并且搜索近实时,主要用于搜索和数据分析 索引 index 可以理解为数据库中的database,存储的是实际数据,因为 ...

  3. django 过滤器、日日期格式化参数

    转载:http://blog.csdn.net/xyp84/article/details/7945094 django1.4 html页面从数据库中读出DateTimeField字段时,显示的时间格 ...

  4. es搜索引擎

    1.es简介 2.es优缺点 3.es使用 4.es可以解决的问题 5.es举例 6.es执行结果截图 7.es数据增量方案 8.使用es搜索 一.es简介 es是一个是一个实时的分布式搜索和分析引擎 ...

  5. ES搜索引擎-简单入门

    基本概念: 索引Index es吧数据放到一个或者多个索引中,如果用关系型数据库模型对比,索引的地位与数据库实例(db)相当.索引存放和读取的基本单元是文档(document).es内部使用的是apa ...

  6. Django模板系统——过滤器

    转自:https://www.douban.com/note/145065606/  <省得每次都得去翻麻烦> 过滤器,变量的显示形式的改变一.形式:小写{{ name | lower } ...

  7. [数据库]漫谈ElasticSearch关于ES性能调优几件必须知道的事(转)

    ElasticSearch是现在技术前沿的大数据引擎,常见的组合有ES+Logstash+Kibana作为一套成熟的日志系统,其中Logstash是ETL工具,Kibana是数据分析展示平台.ES让人 ...

  8. django 过滤器 、日期格式化参数

    http://blog.csdn.net/xyp84/article/details/7945094 django1.4 html页面从数据库中读出DateTimeField字段时,显示的时间格式和数 ...

  9. Django过滤器列表

    Django 模板过滤器也是我们在以后基于 Django 网站开发过程中会经常遇到的,如显示格式的转换.判断处理等.以下是 Django 过滤器列表,希望对为大家的开发带来一些方便. 一.形式:小写 ...

随机推荐

  1. Python-自定义函数-参数

    一.自定义函数参数 1.种类 (1)位置参数 "x"就是位置参数 #!/usr/bin/env python # -*- coding: utf-8 -*- #author: di ...

  2. AngularJS——基础小知识(一)

    $time0ut :定时器 $rootscope :全局的 $scope : 局部的作用域:   它下面的方法: $scope.$watch $scope.$apply   1)$scope.$wat ...

  3. Linux运维的第三周总结

    01. 下列文件中, 包含了主机名到IP地址的映射关系的文件是()       A. /etc/HOSTNAME    B. /etc/hosts    C. /etc/resolv.conf    ...

  4. [Git] 023 Re:从零开始的 rebase 命令

    1. 开门见山 我新建了一个本地仓库,并进行了一些操作 当前情况 查看(直观但不明了) 上图的第二条 "log" 命令详见 [Git] 024 log 命令的补充 的 " ...

  5. 获取kafka最新offset-java

    之前笔者曾经写过通过scala的方式获取kafka最新的offset 但是大多数的情况我们需要使用java的方式进行获取最新offset scala的方式可以参考: http://www.cnblog ...

  6. python 生成list的所有的子集 (不使用递归且不引入标准库)

    不使用递归且不引入标准库,单纯用两个for循环即可得出一个list的所有子集 L = [1, 2, 3, 4] List = [[]] for i in range(len(L)):          ...

  7. [LeetCode] 203. 移除链表元素

    题目链接:https://leetcode-cn.com/problems/remove-linked-list-elements/ 题目描述: 删除链表中等于给定值 val 的所有节点. 示例: 输 ...

  8. Vue:Elementui中的Tag与页面其它元素相互交互的两三事

    前言 公司系统在用elementui做后台开发,不免遇到一些需要自己去根据原有的功能上,加一些交互的功能.今天来介绍下我在用elementUi里的Tag标签与多选框交互的过程,东西听上去很简单,但就是 ...

  9. dsLinq.Count() 引发了“System.NullReferenceException”类型的异常

    DataTable dt = PurchaseArriveInfoBus.GetPurchaseArriveInfo(companyCD, txtArriveNo, txtTitle, txtProv ...

  10. UITableViewCell选中后子View背景色被Clear

    在TableView中,当cell 处于Hightlighted(高亮)或者Selected(选中)状态下,Cell上的子控件的背景颜色会被 Clear. 解决方法:(4种) 1. 直接设置子控件的 ...