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

solr学习之路 摆脱solr页面客户端使用代码实现增删查改 <四>

2017-02-20 22:29 501 查看
前面的学习都是关于客户端的使用,今天我们用代码来控制solr

这时你就会发现为啥学那么久的客户端的原因了。

增加和更新以及删除

为啥增加和更新一起,因为他们在solr中的操作是一样的

ok 我们开始写代码吧

//链接solr客户端
SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
//创建solr文档对象
SolrInputDocument solrInputDocument = new SolrInputDocument();
//域要先定义后使用
solrInputDocument.addField("id", "a4521");
solrInputDocument.addField("product_name", "香蕉");
solrInputDocument.addField("product_price", "40");
//修改或者新增(若id一样则更新不一样则新增)
solrServer.add(solrInputDocument);
//通过id删除
solrServer.deleteById("a4521");
//通过查询语句删除
solrServer.deleteByQuery("*:*");
//提交
solrServer.commit();


简单的增加和删除就ok了,批量增加和更新的话用循环就ok

查询才是重点

接下来我们搞搞查询

// 连接solr的服务
SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
// 获取solr查询对象
SolrQuery solrQuery = new SolrQuery();
// 设置查询关键字
solrQuery.setQuery("台灯");
// 设置过滤查询
solrQuery.addFilterQuery("product_price:[1 TO 100]");
// 设置排序
solrQuery.setSort("product_price", ORDER.asc);
// 从结果中挑选指定范围的数据
// 设置起始
solrQuery.setStart(0);
// 设置数据数量
solrQuery.setRows(10);
// 设置默认搜索域
solrQuery.set("df", "product_keywords");

// 开启高亮
solrQuery.setHighlight(true);
// 设置高亮域
solrQuery.addHighlightField("product_name");
// 设置高亮前缀
solrQuery.setHighlightSimplePre("<em>");
// 设置高亮后缀
solrQuery.setHighlightSimplePost("</em>");

// 查询并获取查询响应对象
QueryResponse queryResponse = solrServer.query(solrQuery);
// 从查询响应中获取结果集
SolrDocumentList solrDocumentList = queryResponse.getResults();
// 打印结果集中的数据
for (SolrDocument solrDocument : solrDocumentList) {
// 获取查询结果
solrDocument.get("id");
// 获取高亮结果
Map<String, Map<String, List<String>>> map = queryResponse.getHighlighting();
//获取多层嵌套的结果
List<String> lists = map.get(solrDocument.get("id")).get("product_name");
if(lists != null)
System.out.println(lists.get(0));
}


运行结果



上面代码对应页面客户端的功能



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