一、简单查询
@Test
public void queryIndex() throws Exception {
// 创建一个SolrServer对象
SolrServer solrServer = new HttpSolrServer("http://192.168.25.128:8080/solr/collection1");
// 创建一个SolrQuery对象
SolrQuery query = new SolrQuery();
// 设置查询条件
// query.setQuery("*:*");
query.set("q", "*:*");
// 执行查询,QueryResponse对象
QueryResponse queryResponse = solrServer.query(query);
// 取文档列表。取查询结果的总记录数
SolrDocumentList solrDocumentList = queryResponse.getResults();
System.out.println("查询结果总记录数:" + solrDocumentList.getNumFound());
// 遍历文档列表,从文档中取域的内容
for (SolrDocument solrDocument : solrDocumentList) {
System.out.println(solrDocument.get("id"));
System.out.println(solrDocument.get("item_title"));
System.out.println(solrDocument.get("item_sell_point"));
System.out.println(solrDocument.get("item_price"));
System.out.println(solrDocument.get("item_image"));
System.out.println(solrDocument.get("item_category_name"));
}
}
二、复杂查询
@Test
public void queryIndexFuza() throws Exception {
// 创建一个SolrServer对象
SolrServer solrServer = new HttpSolrServer("http://192.168.25.128:8080/solr/collection1");
// 创建一个SolrQuery对象
SolrQuery query = new SolrQuery();
// 设置查询条件
query.setQuery("手机");
query.setStart(0);
query.setRows(20);
query.set("df", "item_title");
query.setHighlight(true);
query.addHighlightField("item_title");
query.setHighlightSimplePre("<em>");
query.setHighlightSimplePost("</em>");
// 执行查询,QueryResponse对象
QueryResponse queryResponse = solrServer.query(query);
// 取文档列表。取查询结果的总记录数
SolrDocumentList solrDocumentList = queryResponse.getResults();
System.out.println("查询结果总记录数:" + solrDocumentList.getNumFound());
// 遍历文档列表,从文档中取域的内容
for (SolrDocument solrDocument : solrDocumentList) {
System.out.println(solrDocument.get("id"));
//取高亮显示
Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();
List<String> list = highlighting.get(solrDocument.get("id")).get("item_title");
String title = "";
if(list!=null && list.size()>0){
title = list.get(0);
}else{
title = (String) solrDocument.get("item_title");
}
System.out.println(solrDocument.get("item_title"));
System.out.println(solrDocument.get("item_sell_point"));
System.out.println(solrDocument.get("item_price"));
System.out.println(solrDocument.get("item_image"));
System.out.println(solrDocument.get("item_category_name"));
}
}