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 =