博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Solr5.3.1 SolrJ查询索引结果
阅读量:6305 次
发布时间:2019-06-22

本文共 2772 字,大约阅读时间需要 9 分钟。

  通过SolrJ获取Solr检索结果

  1、通过SolrParams的方式提交查询参数

       SolrClient solr = new HttpSolrClient("http://localhost:8080/solr/core");            Map
map = new HashMap
(); keyword = "".equals(keyword) ? "*" : keyword; map.put("q", "search_item:" + keyword); map.put("indent", "true"); map.put("hl", "true"); map.put("hl.fl", "title, summary"); map.put("hl.simple.pre", "
"); map.put("hl.simple.post", ""); map.put("start", "0"); map.put("rows", "10"); SolrParams params = new MapSolrParams(map); try { QueryResponse resp = solr.query(params); Map
>> highlight = resp.getHighlighting();//高亮集合 SolrDocumentList docsList = resp.getResults();//文档集合 int docNumFound = (int) docsList.getNumFound();//文档数 ArrayList
> list = new ArrayList
>(); String key = ""; Map
docMap; for (SolrDocument doc : docsList) { docMap = new HashMap
(); key = doc.get("id").toString(); if(key != null && highlight.get(key) != null){ docMap.put("id", key); docMap.put("type", doc.get("type").toString()); String title = (String) (!"*".equals(keyword) && highlight.get(key).get("title") != null ? highlight.get(key).get("title").get(0) : doc.get("title")); docMap.put("title", title); String summary = (String) (!"*".equals(keyword) && highlight.get(key).get("summary") != null ? highlight.get(key).get("summary").get(0) : doc.get("summary")); docMap.put("summary", summary); } list.add(docMap); } solr.close(); } catch (Exception e) { e.printStackTrace(); }finally{ if (solr != null) { try { solr.close(); } catch (IOException e) { e.printStackTrace(); } } }

  2、通过SolrQuery提交参数

SolrClient solr = new HttpSolrClient("http://localhost:8080/solr/core");          SolrQuery query = new SolrQuery();          //设置高亮          query.setQuery("name:datou");          query.setHighlight(true); // 开启高亮组件或用query.setParam("hl", "true");          query.addHighlightField("name");// 高亮字段          query.setHighlightSimplePre("");//标记,高亮关键字前缀          query.setHighlightSimplePost("");//后缀  //      query.setHighlightSnippets(1);//结果分片数,默认为1  //      query.setHighlightFragsize(1000);//每个分片的最大长度,默认为100                    System.out.println(query);//用于调试程序                    QueryResponse rsp = solr.query(query);          NamedList list = (NamedList) rsp.getResponse().get("highlighting");          System.out.println(list);//用于显示list中的值                      for (int i = 0; i < list.size(); i++){              System.out.println("id=" + list.getName(i) + "文档中高亮显示的字段:" + list.getVal(i));          }

 

转载地址:http://wqnxa.baihongyu.com/

你可能感兴趣的文章
关于职业规划的一些思考
查看>>
img垂直水平居中与div
查看>>
Fabrik – 在浏览器中协作构建,可视化,设计神经网络
查看>>
防恶意注册的思考
查看>>
http2-head compression
查看>>
C# 命名空间
查看>>
订餐系统之同步美团商家订单
查看>>
使用ArrayList时设置初始容量的重要性
查看>>
Java Web-----JSP与Servlet(一)
查看>>
Maven搭建SpringMVC+Mybatis项目详解
查看>>
关于量子理论:最初无意的简化,和一些人有意的强化和放大
查看>>
CentOS 6.9通过RPM安装EPEL源(http://dl.fedoraproject.org)
查看>>
“区块链”并没有什么特别之处
查看>>
没有功能需求设计文档?对不起,拒绝开发!
查看>>
4星|《先发影响力》:影响与反影响相关的有趣的心理学研究综述
查看>>
IE8调用window.open导出EXCEL文件题目
查看>>
python之 列表常用方法
查看>>
vue-cli脚手架的搭建
查看>>
在网页中加入百度搜索框实例代码
查看>>
在Flex中动态设置icon属性
查看>>