solr学习笔记 -- day05 solrJ的使用

来源:互联网 发布:淘宝卖家需要的软件 编辑:程序博客网 时间:2024/05/17 06:27

一:使用solrJ查询索引库

1、步骤:

(1)、创建一个SolrServer对象和服务端建立连接

(2)、创建一个SolrQuery对象

(3)、参考后台设置查询条件

(4)、执行查询,得到一个QueryResponse对象

(5)、包含查询结果的总记录数、结果列表和高亮结果

(6)、取查询结果并打印

2、代码

(1)、简单条件查询的代码

@Testpublic void searchIndex() throws Exception {// 1、创建一个SolrServer对象和服务端建立连接SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr/collection1");// 2、创建一个SolrQuery对象SolrQuery query = new SolrQuery();// 3、参考后台设置查询条件//query.setQuery("*:*");query.set("q", "*:*");// 4、执行查询,得到一个QueryResponse对象QueryResponse response = solrServer.query(query);// 5、包含查询结果的总记录数、结果列表和高亮结果。SolrDocumentList solrDocumentList = response.getResults();System.out.println("查询结果总记录数:" + solrDocumentList.getNumFound());// 6、取查询结果并打印for (SolrDocument solrDocument : solrDocumentList) {System.out.println(solrDocument.get("id"));System.out.println(solrDocument.get("product_name"));System.out.println(solrDocument.get("product_price"));System.out.println(solrDocument.get("product_catalog_name"));System.out.println(solrDocument.get("product_picture"));}}

(2)、复杂条件的查询代码

@Testpublic void searchIndexFuza() throws Exception {SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr/collection1");//创建查询对象SolrQuery query = new SolrQuery();//设置查询条件query.setQuery("小黄人");query.addFilterQuery("product_price:[0 TO 10]");//参数1:要排序的域 参数2:排序方式query.setSort("product_price", ORDER.asc);query.setStart(0);query.setRows(9);query.set("df", "product_keywords");//设置高亮query.setHighlight(true);query.addHighlightField("product_name");query.setHighlightSimplePre("<em>");query.setHighlightSimplePost("</em>");//执行查询QueryResponse queryResponse = solrServer.query(query);//取查询结果SolrDocumentList solrDocumentList = queryResponse.getResults();//取高亮结果Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();System.out.println("总记录数:" + solrDocumentList.getNumFound());for (SolrDocument solrDocument : solrDocumentList) {System.out.println(solrDocument.get("id"));//取高亮结果String name = "";List<String> list = highlighting.get(solrDocument.get("id")).get("product_name");if (list != null && list.size() > 0) {name = list.get(0);} else {name = (String) solrDocument.get("product_name");}System.out.println(name);System.out.println(solrDocument.get("product_price"));System.out.println(solrDocument.get("product_catalog_name"));System.out.println(solrDocument.get("product_picture"));}}



原创粉丝点击