solr学习之路 摆脱solr页面客户端使用代码实现增删查改 <四>
2017-02-20 22:29
501 查看
前面的学习都是关于客户端的使用,今天我们用代码来控制solr
这时你就会发现为啥学那么久的客户端的原因了。
增加和更新以及删除
为啥增加和更新一起,因为他们在solr中的操作是一样的
ok 我们开始写代码吧
简单的增加和删除就ok了,批量增加和更新的话用循环就ok
查询才是重点
接下来我们搞搞查询
运行结果
上面代码对应页面客户端的功能
到此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学习之路 配置文件的讲解以及页面客户端的使用 <二>
- CMake入门学习+实战<四> 使用外部共享库和头文件+实战:使用CLion调用zlib静态库实现pdf flatedecode解码
- Android客户端之“微服私访”App的系统学习(五)使用Picasso实现轮播图以及使用自定义View实现个人中心页面
- HTML学习---------1.14 在文本中插入一行或多行代码使用的标签<code> <pre>
- 如何在JSP页面中使用JSTL标签实现if和if-else判断,判断条件使用<%=value%>
- 使用PHP实现密保卡功能实现代码<打包下载直接运行>
- AndroidStudio 中使用 百度地图 <四> 百度地图实现打开就显示当前位置,个人摘要
- cmake 学习之路 记录中间所遇到过的所有错误与问题的解决 <四>
- HBase 学习之一 <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>
- 最简单的struts2中使用<s:iterator>实现隔行变色代码[珍藏版]
- 使用PHP实现密保卡功能实现代码<打包下载直接运行>
- .Net Core中使用ref和Span<T>提高程序性能的实现代码
- <Java Web学习初级阶段>表格实现简单的注册页面
- SPRING源码学习之路(三)——<aop:config>自动代理的实现
- 认识PHP代码标识 想在页面中编写PHP代码非常容易,如下面代码: <?php echo "想学习php吗?来慕课网吧"; ?> 就像你可以编写JavaScript脚本语言需要写在<scri
- HTML学习---------1.20 使用<a>标签链接到另一个页面
- Mybatis学习之路之Oracle增删改查以及常用函数<二>
- ZooKeeper学习笔记:使用zookeeper的API实现增删查改以及客户端的观察者模式
- html页面中,代码不转义,使用--------<xmp></xmp>标签
- 从外部的js文件中使用<%=%>获取ASPX页面的ClientID获取后台代码