你不知道的全文检索---solrJ操作solr索引库
上一篇简单的介绍了一下如何通过控制台来维护solr索引库,本文将介绍一下如何通过java代码的方式维护solr的索引库,这个时候我们需要引入solrJ的jar包。
solrJ维护solr索引库
新建工程
首先新建一个Maven工程(普通的java工程也一样,只要引入下面的jar包就行),pom中需要引入的包如下:
<dependencies> <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>4.10.1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.2</version> </dependency> </dependencies>
编写测试类
项目新建完成之后,新建一个test类使用solrJ去操作solr索引库如下:
public classsolrTest { private SolrServer solrServer; //private SolrInputDocument document; @Before public void setUp() throws Exception { //创建一连接 solrServer = new HttpSolrServer("http://192.168.21.224:8080/solr/collection1"); SolrInputDocument document = new SolrInputDocument(); } @Test publicvoidtestAdd() throwsException { // //创建一连接 // SolrServersolrServer = newHttpSolrServer("http://192.168.21.224:8080/solr/collection1"); // //穿件文档对象 SolrInputDocument document = new SolrInputDocument(); document.addField("id", System.currentTimeMillis()); document.addField("nickName", "张三"); document.addField("companyName", "中呵"); //把文档对象写入索引库 solrServer.add(document); //提交 solrServer.commit(); } @Test publicvoidupdateAdd() throwsException { SolrInputDocumentdocument= newSolrInputDocument(); document.setField("id", "1465204065056"); document.setField("nickName", "王五"); document.setField("companyName", "中呵"); //把文档对象写入索引库 solrServer.add(document); //提交 solrServer.commit(); } @Test publicvoidtestDelete() throwsException { solrServer.deleteById("1465203434427"); //solrServer.deleteByQuery("*:*"); solrServer.commit(); } @Test public void testSearch() throws Exception { SolrQuerysolrQuery= newSolrQuery(); // 构造搜索条件 solrQuery.setQuery("companyName:"+ "中呵"); // 搜索关键词 // 设置分页 start=0就是从0开始,,rows=5当前返回5条记录,第二页就是变化start这个值为5就可以了。 solrQuery.setStart((Math.max(1,1) - 1) * 3); solrQuery.setRows(3); // 是否需要高亮 boolean isHighlighting = !StringUtils.equals("*", "中呵") &&StringUtils.isNotEmpty("中呵"); if (isHighlighting) { // 设置高亮 solrQuery.setHighlight(true); // 开启高亮组件 solrQuery.addHighlightField("companyName");// 高亮字段 solrQuery.setHighlightSimplePre("<em>");// 标记,高亮关键字前缀 solrQuery.setHighlightSimplePost("</em>");// 后缀 } // 执行查询 QueryResponsequeryResponse = this.solrServer.query(solrQuery); System.out.println("共查询出数据条数:" + queryResponse.getResults().size()); } }
本文简单的介绍了一下如何使用solrJ去操作solr的索引库,使用测试方法,我们测试了增、删、改、查等最基本的操作。