Elasticsearch Java API 的使用(7)—多条件查询

本文介绍如何使用Elasticsearch进行多条件精确匹配查询,并展示了具体的代码实现过程,包括设置查询条件、排序方式及获取查询结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多条件设置
//多条件设置
MatchPhraseQueryBuilder mpq1 = QueryBuilders
                .matchPhraseQuery("pointid","W3.UNIT1.10LBG01CP301");
MatchPhraseQueryBuilder mpq2 = QueryBuilders
                .matchPhraseQuery("inputtime","2016-07-21 00:00:01");
QueryBuilder qb2 = QueryBuilders.boolQuery().must(mpq1).must(mpq2);
实现多条件查询
public class EsBool{
    public void BoolSearch(TransportClient client){
        //多条件设置
        MatchPhraseQueryBuilder mpq1 = QueryBuilders
            .matchPhraseQuery("pointid","W3.UNIT1.10LBG01CP301");
        MatchPhraseQueryBuilder mpq2 = QueryBuilders
            .matchPhraseQuery("inputtime","2016-07-21 00:00:01");
        QueryBuilder qb2 = QueryBuilders.boolQuery()   
                                .must(mpq1)   
                                .must(mpq2);
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder.query(qb2);
        //System.out.println(sourceBuilder.toString());

        //查询建立
        SearchRequestBuilder responsebuilder = client
                .prepareSearch("pointdata").setTypes("pointdata");
        SearchResponse myresponse=responsebuilder
                    .setQuery(qb2)
                    .setFrom(0).setSize(50)
                    .addSort("inputtime", SortOrder.ASC)
                    //.addSort("inputtime", SortOrder.DESC)
                    .setExplain(true).execute().actionGet();
            SearchHits hits = myresponse.getHits();
            for(int i = 0; i < hits.getHits().length; i++) {
                System.out.println(hits.getHits()[i].getSourceAsString());

            }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值