1、首先,我比较懒。我把 apache-solr-3.6.1/dist 目录下所有的包导入到了工程中,除了war包。
2、下面来看看代码,里面都有注释,其它就不多说了
import org.apache.solr.client.solrj.SolrQuery;import org.apache.solr.client.solrj.SolrServer;import org.apache.solr.client.solrj.impl.HttpSolrServer;import org.apache.solr.client.solrj.response.QueryResponse;import org.apache.solr.common.SolrDocument;import org.apache.solr.common.SolrDocumentList;public class SolrJUtils { private static final String baseURL = "http://192.168.241.128:8080/solr";// solr服务器url private static SolrServer solrServer = new HttpSolrServer(baseURL); public static void search() { SolrQuery params = new SolrQuery(); // 查询关键词,*:*代表所有属性、所有值,即所有index // params.set("q", "*:*"); params.set("q", "nickname:chm*");// 查询nickname是已chm开头的数据 // 分页,start=0就是从0开始,,rows=5当前返回5条记录,第二页就是变化start这个值为5就可以了。 params.set("start", 0); params.set("rows", 5); // 按nickname排序,asc升序 desc降序 params.set("sort", "nickname asc"); try { QueryResponse rsp = solrServer.query(params); SolrDocumentList docs = rsp.getResults(); System.out.println("文档个数:" + docs.getNumFound()); System.out.println("查询时间:" + rsp.getQTime()); for (SolrDocument doc : docs) { String name = (String) doc.getFieldValue("nickname"); System.out.println(name); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { SolrJUtils.search();//实际应用过程中可以根据自身需要传参 }}好了,一般开发都是用查询功能的,索引的更新基本上都是使用 crond。