wangyan188 发表于 2017-12-20 12:38:24

使用solrJ管理索引

//复杂查询索引  
    @Test
  
public void queryIndex2() throws Exception {
  
//创建连接
  
SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
  
//创建一个query对象
  
SolrQuery query = new SolrQuery();
  
//设置查询条件
  
query.setQuery("钻石");
  
//过滤条件
  
query.setFilterQueries("product_catalog_name:幽默杂货");
  
//排序条件
  
query.setSort("product_price", ORDER.asc);
  
//分页处理
  
query.setStart(0);
  
query.setRows(10);
  
//结果中域的列表
  
query.setFields("id","product_name","product_price","product_catalog_name","product_picture");
  
//设置默认搜索域
  
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();
  
//共查询到商品数量
  
System.out.println("共查询到商品数量:" + solrDocumentList.getNumFound());
  
//遍历查询的结果
  
for (SolrDocument solrDocument : solrDocumentList) {
  
System.out.println(solrDocument.get("id"));
  
//取高亮显示
  
String productName = "";
  
Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();
  
List<String> list = highlighting.get(solrDocument.get("id")).get("product_name");
  
//判断是否有高亮内容
  
if (null != list) {
  
productName = list.get(0);
  
} else {
  
productName = (String) solrDocument.get("product_name");
  
}
  

  
System.out.println(productName);
  
System.out.println(solrDocument.get("product_price"));
  
System.out.println(solrDocument.get("product_catalog_name"));
  
System.out.println(solrDocument.get("product_picture"));
  

  
}
  
}
页: [1]
查看完整版本: 使用solrJ管理索引