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