(1) q条件查询方式,查询字段。
query.setQuery("id:100001");如果想在q查询中多条件查询,需要用AND 把查询条件分割开,一定是大写的 ANDquery.setQuery("id:100001 and name=某某");(2) fq查询方式,辅助查询,是指在q查询结果中同时符合fq的查询条件,可以设置多个。
query.addFilterQuery("provinceCode:"+provinceCode); query.addFilterQuery("cityCode:"+cityCode); fq的查询方式还可以写成1行,query.addFilterQuery("provinceCode:1000 AND cityCode:1002"); fq的两种写法都回返回相同的结果,但是solr查询运算的过程不过,第一种是加载了2次filterQuery来进行运算,这样需要多进行一次交集运算。第二种方式是一次计算fq的值,但是比较耗内存,这个要看大家的选择,后续会讲下solr优化。(3) 分页查询,solr里是用start和rows来实现分页的
query.setStart(0);query.setRows(10);
(4) 设置需要返回的字段和查询的集合
query.setFilterQueries("id,name");query.set("collection","student")
(5) 设置排序的字段,用id正序排序
import org.apache.solr.client.solrj.SolrQuery.ORDER
query.setSort("id", ORDER.asc.reverse());
(6) 查询并返回json数据,也可以返回bean类,看自己的选择
QueryResponse response=solrClient.query(query);SolrDocumentList list=response.getResults();JSONArray arrJson = new JSONArray();for(SolrDocument document:list){arrJson.add(document);}return arrJson.toJSONString();
这里简单介绍了下solrj简单查询的方式,后面再介绍facet查询方式。新闻热点
疑难解答