solr学习笔记 -- day05 solrJ的使用
2017-06-04 18:44
399 查看
一:使用solrJ查询索引库
1、步骤:
(1)、创建一个SolrServer对象和服务端建立连接(2)、创建一个SolrQuery对象
(3)、参考后台设置查询条件
(4)、执行查询,得到一个QueryResponse对象
(5)、包含查询结果的总记录数、结果列表和高亮结果
(6)、取查询结果并打印
2、代码
(1)、简单条件查询的代码@Test
public 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)、复杂条件的查询代码
@Test
public 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"));
}
}
相关文章推荐
- solr学习笔记 -- day03 使用solrJ客户端
- solr学习笔记(3)--使用solrj调用solr服务
- Solr学习笔记四--solrj的使用(更新文档)
- Solr学习笔记---部署Solr到Tomcat上,可视化界面的介绍和使用,Solr的基本内容介绍,SolrJ的使用
- Solr学习笔记五--solrj的使用(查询文档)
- FileSwitchDirectory 学习笔记 并在solr上的使用
- 【Solr4.7.0学习笔记】系列之一:Solrj4.7增删改查+分页
- 搜索学习--Solr全文搜索服务器的基本使用(一)——SolrJ的使用
- Solr文档学习--Solrj的使用
- git学习笔记 -- day05 Eclipse安装、使用git
- solr7.1.0学习笔记(12)---Solr客户端SolrJ的运用
- 学习淘淘商城第五十课(使用SolrJ管理Solr集群)
- 学习笔记之引用的使用
- C#学习笔记(十六):使用打开保存文件对话框
- C# 学习笔记 -- 第三天 申明和使用数据
- C#中使用委托的学习笔记
- Chap 4 学习笔记-使用C#存储变量数据
- C#学习笔记(二十一):使用文件基础
- 学习笔记,VB.NET使用DirectSound9 (1) 简单播放
- .Net学习笔记 - Web页中使用WinForm