在解压SOLR ZIP后的,solr-4.8.1\dist可以找到solr-solrj-4.8.1.jar ,用于该版本的solrj包
其他的支撑JAR包可以再solr-4.8.1\dist\solrj-lib中找到。
使用Solrj更新索引
使用Solrj是首先我们实例化一个SolrServer,这里使用HttpSolrServer。我们再创建一个SolrInputDocument以方便来添加要索引的数据。这里的Field是在\solr\solr\collection1\conf\schema.xml里面定义的,如果里面没有定义的字段在这里是不能添加的,除非是使用动态字段。示例代码如下:
String url = "http://localhost:8080/solr"; SolrServer server = new HttpSolrServer(url); SolrInputDocument doc1 = new SolrInputDocument(); doc1.addField("id", "1"); doc1.addField("title", "云南xxx科技"); doc1.addField("cat", "企业信息门户,元数据,数字沙盘,知识管理"); SolrInputDocument doc2 = new SolrInputDocument(); doc2.addField("id", "2"); doc2.addField("title", "胡启稳"); doc2.addField("cat", "知识管理,企业信息门户,云南,昆明"); SolrInputDocument doc3 = new SolrInputDocument(); doc3.addField("id", "3"); doc3.addField("title", "liferay"); doc3.addField("test_s", "这个内容能添加进去么?这是动态字段呀"); List<SolrInputDocument> docs = new ArrayList<SolrInputDocument>(); docs.add(doc1); docs.add(doc2); docs.add(doc3); server.add(docs); server.commit();
到此就添加了三个document到solr的索引库里面。下面介绍如何进行搜索。
使用Solrj进行搜索
搜索的第一步和上面一样,先取得一个SolrServer。然后创建一个SolrQuery进行搜索,搜索取得的数据已经封装在QueryResponse里面,通过相关API获取结果数据。示例代码如下:
String url = "http://localhost:8080/solr"; SolrServer server = new HttpSolrServer(url); SolrQuery query = new SolrQuery("云南"); try { QueryResponse response = server.query(query); SolrDocumentList docs = response.getResults(); System.out.println("文档个数:" + docs.getNumFound()); System.out.println("查询时间:" + response.getQTime()); for (SolrDocument doc : docs) { System.out.println("id: " + doc.getFieldValue("id")); System.out.println("name: " + doc.getFieldValue("title")); System.out.println(); }