solrJ查询

本文详细介绍了如何使用Solr进行复杂查询,包括关键字查询、模糊查询、in查询和范围区间查询。通过具体代码示例,展示了如何构建查询字符串并利用SolrService执行搜索,为开发者提供了实用的Solr查询指南。

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

StringBuilder params = new StringBuilder("");   
//关键字查询   

if(StringUtils.isNotBlank(keyWords)){
        params.append(" keyword:" + keyWords+" AND ");
   } 

//模糊查询,参数两侧加*号

if(StringUtils.isNotBlank(quanzongNo)){
       params.append(" quanzongNo:*" + quanzongNo+"* AND ");
  }

//in查询

if(StringUtils.isNotBlank(ftype)){
    String type="";
    for(int i=0;i<ftype.split(",").length;i++){
         type=type+"'"+ftype.split(",")[i]+"'"+",";
    }
    type=type.substring(0,type.length()-1);
    params.append(" type:(" + type+") AND ");
}

//范围区间查询

if(StringUtils.isNotBlank(stimer) && StringUtils.isNotBlank(etimer)){
    params.append(" createat:[" + stimer + " TO " + etimer + "] AND ");
}

各查询条件用AND拼接,最后字符串截取下

SolrDocumentList solrDocumentList=solrService.search("epmm_core", beginRow, rows, params.toString().substring(0,params.toString().length()-4));
solrService.search()方法:

    public SolrDocumentList search(String collection, int beginRow, int rows,String queryparams) throws IOException, SolrServerException {
        SolrQuery params = new SolrQuery(queryparams);
        // params.set("q", "key:"+map.get("keyword")+"");
        // params.set("fl", "id,attr_file_name");
         params.setStart(beginRow);
         params.setRows(rows);
         QueryResponse queryResponse = client.query(collection,params);
         SolrDocumentList results = queryResponse.getResults();
 
        return results;
    }

 

 

 

转载于:https://my.oschina.net/suncici1101/blog/3016120

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值