(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查詢方式。新聞熱點
疑難解答