您的位置:首页 > 编程语言

solr复杂查询;及代码示例;包括查询、过滤、分页、排序、高亮显示等处理 的代码示例;

2017-11-18 12:58 896 查看

1.1.1. 复杂查询

其中包含查询、过滤、分页、排序、高亮显示等处理。

 

 

 

 

//复杂查询索引

@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"));

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  solr
相关文章推荐