solr_代码中使用solr二(查询)

本文介绍了如何在代码中使用Solr进行各种查询操作,包括单条件查询、分页查询、AND条件查询、OR条件查询、混合条件查询以及facet分组和group分组。示例代码详细展示了如何构建查询语句、处理查询结果,并通过排序和分组实现复杂的数据筛选和统计。
摘要由CSDN通过智能技术生成

1) 单条件查询

 String queryStr = "user_uuid:*";

SolrQuery query = new SolrQuery(queryStr);

SolrDocumentList solrDocumentList = solrDao.getResults(query);

 

public SolrDocumentList getResults(SolrQuery query) {

    QueryResponse response = null;

    try {

        response = httpSolrClient.query(query);

        if (response == null) {

            return null;

        }

    } catch (SolrServerException | IOException e) {

       e.printStackTrace();

    }

 

    return response.getResults();

}

 

{numFound=4,start=0,docs=[

SolrDocument{id=001, user_uuid=001, user_name=张三, user_age=23, user_birthday=1988-10-24 12:40:21, user_city=北京, _version_=1558767452121202688},

SolrDocument{user_name=李四, user_age=24, id=002, user_city=北京, user_birthday=1988-10-24 11:40:21, user_uuid=002, _version_=1558768367416901632},

SolrDocument{id=003, user_uuid=003, user_name=王五, user_age=25, user_birthday=1988-10-24 10:40:21, user_city=北京, _version_=1558826141613031424},

SolrDocument{user_name=赵六, user_age=25, id=004, user_city=上海, user_birthday=1988-10-24 10:40:21, user_uuid=004, _version_=1558826302547427328}]

}

 

2) 分页查询

 

query.setStart(20);// 从第20行开始,加10行,相当于第三页(每页10个)

query.setRows(10);

 

3) And条件查询

List<String> conditions = Lists.newArrayList();

conditions.add("user_uuid:*");

conditions.add("user_city:北京");

Joiner joiner = Joiner.on(" AND ").skipNulls();

String queryStr = joiner.join(conditions);

SolrQuery query = new SolrQuery(queryStr);

SolrDocumentList solrDocumentList = solrDao.getResults(query);

 

User [name=张三, age=23, id=001, city=北京, birthday=1988-10-24 12:40:21]

User [name=李四, age=24, id=002, city=北京, birthday=1988-10-24 11:40:21]

User [name=王五, age=25, id=003, city=北京, birthday=1988-10-24 10:40:21]

 

4) Or条件查询

List<String> conditions = Lists.newArrayList();

conditions.add("user_uuid:002");

conditions.add("user_city:上海");

Joiner joiner = Joiner.on(" OR ").skipNulls();

String queryStr = joiner.join(conditions);

SolrQuery query =

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值