zoukankan      html  css  js  c++  java
  • es之过滤器

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

    如果可以,应该尽可能使用过滤器。过滤器不影响评分,而得分计算让搜索变得复杂,而且需要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);
    }

     

  • 相关阅读:
    MySQL主从复制与读写分离
    MySQL主从同步、读写分离配置步骤
    c# 无损压缩图片,接口传过来的是字节
    C# 和JAVA AES加密之间的互相兼容,C#版
    list的线程非安全性
    webrequesthelper
    .net core 实现微信登陆
    .net core 实现QQ登陆网站
    c# 深拷贝
    在H+框架下的一个给iframe 的body 添加事件。
  • 原文地址:https://www.cnblogs.com/niutao/p/10909308.html
Copyright © 2011-2022 走看看