Elasticsearch Java API 的使用 — 范圍查詢


1種方法:

Java 范圍查詢(時間范圍查詢示例)來自:  https://blog.csdn.net/zx711166/article/details/77847103

RangeQueryBuilder 構建范圍查詢條件;
可以使用 RangeQueryBuilder 作為時間范圍查詢。
示例如下:

public class EsRange{
    public void RangeSearch(TransportClient client){
        //時間范圍的設定
        RangeQueryBuilder rangequerybuilder = QueryBuilders
                    .rangeQuery("inputtime")
                    .from("2016-7-21 00:00:01").to("2016-7-21 00:00:03");
        //生成DSL查詢語句
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder.query(rangequerybuilder);

        //System.out.println(sourceBuilder.toString());

        //查詢建立
        SearchRequestBuilder responsebuilder = client
                                .prepareSearch("pointdata")
                                .setTypes("pointdata");
        SearchResponse myresponse=responsebuilder
                    .setQuery(QueryBuilders.boolQuery() 
                    .must(QueryBuilders.matchPhraseQuery //must表示and                    
                        ("pointid","W3.UNIT1.10LBG01CP301")
                    )
                    .must(rangequerybuilder))
                    .setFrom(0).setSize(50) //分頁
                    .setExplain(true)
                    .execute()
                    .actionGet();
        SearchHits hits = myresponse.getHits();
        for(int i = 0; i < hits.getHits().length; i++) {
            System.out.println(hits.getHits()[i].getSourceAsString());
        }
    }
}

  第二種方法:

public interface ItemRepository extends ElasticsearchRepository<Item,Long>{

    /**
     * 根據價格區間查詢
     * @param price1
     * @param price2
     * @return
     */
    List<Item> findByPriceBetween(double price1, double price2);
}

  


免責聲明!

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



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