SolrJ 操作索引文档

来源:互联网 发布:h5投票系统源码 编辑:程序博客网 时间:2024/05/21 11:03

这是我在使用solr单机版服务器进行查询

服务器操作截图



java测试代码片段:

(添加索引文档)

public void testSoloJ() throws Exception{//得到SolrServer 通过HttpSolrServerSolrServer solrServer = new HttpSolrServer("http://10.117.17.110:8080/solr/collection1");//创建一个SolrDocumentSolrInputDocument document = new SolrInputDocument();document.addField("id", "test3");document.addField("item_title", "手机贴膜");document.addField("item_sell_point", "送钢化膜");//添加到服务器solrServer.add(document);//提交solrServer.commit();}

(删除索引文档)

public void testDeleteDocumentById() throws Exception{//创建solrserver对象SolrServer server = new HttpSolrServer("http://10.117.17.110:8080/solr/collection1");//通过id删除documentserver.deleteById("test1");//提交server.commit();}@Testpublic void testDeleteDocumentByQuery() throws Exception{//创建solrserver对象SolrServer server = new HttpSolrServer("http://10.117.17.110:8080/solr/collection1");//通过条件删除server.deleteByQuery("*:*");//提交server.commit();}


(查询索引文档高亮显示)

public void testQuery() throws Exception{// 1. 创建solrserver对象SolrServer solrServer = new HttpSolrServer("http://10.117.17.110:8080/solr/collection1");// 2. 创建solrQuery对象SolrQuery query = new SolrQuery();// 3. 设置查询条件query.setQuery("手机");// 4. 设置默认查询字段query.set("df", "item_keywords");// 5. 设置分页条件query.setStart(0);query.setRows(10);// 6. 设置高亮显示query.setHighlight(true);query.addHighlightField("item_title");query.setHighlightSimplePre("<div>");query.setHighlightSimplePost("</div");// 7. 执行查询,返回查询结果QueryResponse queryResponse = solrServer.query(query);// 8. 得到结果集SolrDocumentList solrDocumentList = queryResponse.getResults();// 9. 得到结果总记录数long numFound = solrDocumentList.getNumFound();System.out.println("总共查询到"+numFound+"条记录");// 10. 显示查询结果for (SolrDocument solrDocument : solrDocumentList) {System.out.println("id: "+solrDocument.getFieldValue("id"));// 11. 高亮显示标题Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();List<String> list = highlighting.get(solrDocument.getFieldValue("id")).get("item_title");// 12. 如果list不为空则标题中有查询的内容,否则在其他地方有查询的内容String title = "";if( list!=null && list.size()>0){title = list.get(0);} else {title = (String) solrDocument.getFieldValue("item_title");}System.out.println("item_title: " + title);System.out.println("item_sell_point: "+solrDocument.getFieldValue("item_sell_point"));System.out.println("item_price: "+solrDocument.getFieldValue("item_price"));System.out.println("item_image: "+solrDocument.getFieldValue("item_image"));System.out.println("item_category_name: "+solrDocument.getFieldValue("item_category_name"));System.out.println("分割线===================================");}}