27-RestHighLevelClient----过滤查询

query:查询精确查询 查询计算文档得分 并根据文档得分进行返回

filter query:过滤查询 用来在大量数据中筛选出本地查询相关数据 不会计算文档得分 经常使用 结果会进行缓存

query和filter经常给配合使用

注意:一旦使用query和filterQuery,es优先执行filter query,再执行query

@SpringBootTest
public class RestHighLevelClientFilterTest {

    /*
    query:查询精确查询  查询计算文档得分 并根据文档得分进行返回
    filter query:过滤查询 用来在大量数据中筛选出本地查询相关数据 不会计算文档得分 经常使用 结果会进行缓存
    query和filter经常给配合使用

    注意:一旦使用query和filterQuery,es优先执行filter query,再执行query
    */

    private RestHighLevelClient restHighLevelClient;

    @Autowired
    public RestHighLevelClientFilterTest(RestHighLevelClient restHighLevelClient) {
        this.restHighLevelClient = restHighLevelClient;
    }


    /**
     * 过滤查询
     */
    @Test
    public void testFilter() throws IOException {
        SearchRequest searchRequest = new SearchRequest();
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder
                    .query(QueryBuilders.matchAllQuery())//普通查询
                    .postFilter(QueryBuilders.termQuery("description", "好吃"));//过滤查询,可以通过QueryBuilders指定各种查询条件
        searchRequest.source(sourceBuilder);

        SearchResponse search = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
        SearchHit[] hits = search.getHits().getHits();
        for (SearchHit hit : hits) {
            System.out.println(hit.getSourceAsString());
        }
    }
}
上一篇:locust压测 学习使用笔记


下一篇:ajax +formdata ,后台为PHP 实现上传整个文件夹(只适合谷歌浏览器)带进度条