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());
        }
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM