热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

solr学习笔记(4)带高亮查询

截取一段真实项目中的高亮代码,常用的方法都已经使用,可以完成基本的高亮查询功能RepositorypublicclassSolrItemSerchD

截取一段真实项目中的高亮代码,常用的方法都已经使用,可以完成基本的高亮查询功能

@Repository
public class SolrItemSerchDaoImp implements SolrItemSerchDao{// 索引库@Autowiredprivate SolrServer solrServer;通过上面四个条件查询对象商品结果集public List selectProductModelListByQuery(String queryString, String catalog_name,String price,String sort) throws Exception {// 查询 关键词 过滤条件// 价格排序 分页 开始行 每页数 高亮 默认域 只查询指定域SolrQuery solrQuery = new SolrQuery();// 关键词solrQuery.setQuery(queryString);// 过滤条件 if(null != catalog_name && !"".equals(catalog_name)){solrQuery.set("fq", "product_catalog_name:" + catalog_name);}if(null != price && !"".equals(price)){//0-9 50-*String[] p = price.split("-");solrQuery.set("fq", "product_price:[" + p[0] + " TO " + p[1] + "]");}// 价格排序if("1".equals(sort)){solrQuery.addSort("product_price", ORDER.desc);}else{solrQuery.addSort("product_price", ORDER.asc);}// 分页solrQuery.setStart(0);solrQuery.setRows(16);// 默认域solrQuery.set("df", "product_keywords");// 只查询指定域solrQuery.set("fl", "id,product_name,product_price,product_picture");// 高亮// 打开开关solrQuery.setHighlight(true);// 指定高亮域solrQuery.addHighlightField("product_name");// 前缀solrQuery.setHighlightSimplePre("");solrQuery.setHighlightSimplePost("");// 后缀// 执行查询QueryResponse response = solrServer.query(solrQuery);// 文档结果集SolrDocumentList docs = response.getResults();Map>> documents = response.getHighlighting();// Map K id V Map// Map K 域名 V List// List list.get(0)// 总条数long numFound = docs.getNumFound();List productModels = new ArrayList();for (SolrDocument doc : docs) {ProductModel productModel = new ProductModel();productModel.setPid((String) doc.get("id"));productModel.setPrice((Float) doc.get("product_price"));productModel.setPicture((String) doc.get("product_picture"));Map> document= documents.get((String) doc.get("id"));List list = map.get("product_name");productModel.setName(list.get(0));productModels.add(productModel);}return productModels;}
}

 注意:

 高亮开启后,高亮显示的数据是单独通过response.getHighlighting()获取出来,并且得到的是一个存储document的Map,Map的key是document的id,通过id取出的指定document,再取出指定域,如图

 

 

 

 

 

 

 

 

 


推荐阅读
  • 这个报错出现在userDao里面,sessionfactory没有注入。解决办法:spring整合Hibernate使用test测试时要把spring.xml和spring-hib ... [详细]
  • 使用LINQ优化WinForms中CheckedListBox的操作
    本文介绍如何利用LINQ扩展方法解决WinForms中CheckedListBox控件的常见操作问题,包括获取选中项的文本并用分隔符连接,以及根据字符串初始化选中状态。 ... [详细]
  • 本文探讨了如何从文本文件中正确读取一行数据,并将其赋值给C语言中的变量,同时解决了常见的错误和注意事项。 ... [详细]
  • 如何在UIWebView中加载本地图片
    本文详细介绍了如何在UIWebView中加载本地图片的方法,这对于需要在应用内展示静态页面和富文本内容的场景非常有用。 ... [详细]
  • 本文介绍了几个有趣的Linux命令行工具,包括模拟蒸汽机车的sl命令、反转字符串的rev命令、显示随机名言的fortune命令等,不仅增添了命令行操作的乐趣,也展示了Linux系统的多样性和灵活性。 ... [详细]
  • ASP.NET Core Razor模型验证绑定是否造成服务器资源浪费?
    探讨了ASP.NET Core Razor页面中模型验证绑定机制是否导致了不必要的服务器负载。通过一个简单的登录表单示例,分析了模型验证的过程及其对服务器的影响。 ... [详细]
  • 本文介绍了如何利用高德地图API实现一个高效的地点选择组件,适用于需要用户选择具体位置的应用场景,如活动邀请函填写等。该组件支持从地图中选择地点,并自动将地点信息回填至表单中。 ... [详细]
  • 本文介绍了 Python 中 *args 和 **kwargs 的使用方法,以及如何通过 lambda 表达式、map 和 filter 函数处理数据。同时,探讨了 enumerate 和 zip 函数的应用,并展示了如何使用生成器函数处理大数据集。 ... [详细]
  • 在上一章【第三十九章:基于SpringBoot&Quartz完成定时任务分布式单节点持久化】中我们已经完成了任务的持久化,当我们创建一个任务时任务会被quartz定时任务框架自动持 ... [详细]
  • 如何获取php脚本路径(2023年最新解答)
    如何获取php脚本路径(2023年最新解答) ... [详细]
  • 上一篇我们介绍了C#3.0新语言特性和改进上部分,这篇我们继续介绍剩下的部分。C#3.0新语言特性和改进包括:自动属性(Auto-ImplementedProperties)隐含 ... [详细]
  • 本文介绍了如何通过修改Android应用的配置文件和编写布局与Activity代码,利用DOM模式将用户输入的数据保存为XML文件。 ... [详细]
  • 本文档提供了数据结构在C语言中的实现示例,特别是解决二次方程的代码片段,以及《数据结构(用面向对象方法与C++语言描述)第二版》的部分习题答案。 ... [详细]
  • CentOS 7.4 KVM虚拟化平台搭建指南
    本文详细介绍了如何在CentOS 7.4系统上搭建KVM虚拟化平台,包括环境准备、网络配置、KVM安装与管理等步骤,适用于希望利用KVM进行虚拟化部署的技术人员。 ... [详细]
  • Minetest 0.4.9 开源游戏在 Ubuntu 下通过 PPA 安装指南
    本文介绍了如何在 Ubuntu 系统上安装最新版本的 Minetest 0.4.9,包括添加 PPA、更新软件包列表以及安装过程,适合所有 Ubuntu 及其衍生系统的用户。 ... [详细]
author-avatar
行者
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有