SpringBoot集成Solr(二)搜索数据

这篇具有很好参考价值的文章主要介绍了SpringBoot集成Solr(二)搜索数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringBoot集成Solr(二)搜索数据

1.1 构建查询条件

//创建 solr查询参数对象
SolrQuery query = new SolrQuery();
StringBuilder params = new StringBuilder();
params.append(" subject_s:*").append(text).append("*");
params.append(" OR keywords_s:*").append(text).append("*");
params.append(" OR summary_ik:*").append(text).append("*");
params.append(" OR content_ik:*").append(text).append("*");
params.append(" OR creationByName_s:*").append(text).append("*");
query.setQuery(params.toString());

  • 上面代码中左边的字符串是映射到solr中的实体属性,相当于数据库中的表字段,*表示匹配多位。

1.2 构建排序条件

//多个条件 构造方式
List<SolrQuery.SortClause> orders = new ArrayList<>();
orders.add(new SolrQuery.SortClause("topFlag_s", SolrQuery.ORDER.asc));
orders.add(new SolrQuery.SortClause("creationDate_s", SolrQuery.ORDER.desc));
query.setSorts(orders);

//单个条件构造方式一
SortClause sort = new SolrQuery.SortClause("topFlag_s", SolrQuery.ORDER.asc)
query.setSort(sort);

//单个条件构造方式二
query.setSort("topFlag_s",SolrQuery.ORDER.asc);

1.3 设置分页

//设置分页
query.setStart(Func.toInt(page.getCurrent() - 1)); //solr的分页是从0开始的
query.setRows(Func.toInt(page.getSize()));
  • 注意:solr的分页第一页其实是从0开始的,部分框架中分页插件第一页是从1开始的

1.4 设置高亮

//启动高亮显示 
query.setHighlight(true);
//指定需要高亮显示的属性
query.addHighlightField("subject_s");
query.addHighlightField("keywords_s");
query.addHighlightField("kmCategoryName_s");
//高亮显示的前缀
query.setHighlightSimplePre("<font color='red'>");
//高亮显示的后缀
query.setHighlightSimplePost("</font>");
  • 注意:这种方式设置的高亮是整个属性值全部高亮。

  • 例如:设置标题高亮

    SpringBoot集成Solr(二)搜索数据,实践是检验真理的唯一标准,spring boot,solr,后端文章来源地址https://www.toymoban.com/news/detail-652919.html

  • 若想只高亮输入的关键字,则可以使用如下方式实现:
//在源字符串中匹配关键字,并指定关键字颜色、背景
public static String markSubstring(String original, String keyword) {
		Pattern pattern = Pattern.compile(keyword, Pattern.CASE_INSENSITIVE);
		Matcher matcher = pattern.matcher(original);
		return matcher.replaceAll("<font style='background-color:#ffff00;color:#f00'>$0</font>");
}

1.5 执行查询

//执行查询
QueryResponse response = solrClient.query(query);
//检索到的数量
long numFound = response.getResults().getNumFound();
//处理文档
SolrDocumentList solrDocumentList = response.getResults();
// 初始化 DocumentObjectBinder对象
DocumentObjectBinder binder = new DocumentObjectBinder();
// 将查询结果 solrDocumentList对象转换为list对象
result = binder.getBeans(KnowledgeIk.class, solrDocumentList);
return result;

到了这里,关于SpringBoot集成Solr(二)搜索数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Solr】Solr搜索引擎使用

    其实我们大多数人都使用过Solr,也许你不会相信我说的这句话,但是事实却是如此啊 ! 每当你想买自己喜欢的东东时,你可能会打开某宝或者某东,像这样一搜,就能搜到很多东西,你知道你看到的这些数据都来自哪儿吗?百度一下你就知道!这些数据来自哪儿吗?等你了解完Solr后你就

    2024年02月15日
    浏览(44)
  • SpringBoot集成Elasticsearch搜索引擎

    Elasticsearch是一个基于Lucene的搜索引擎,它提供了实时、可扩展和可伸缩的搜索功能。Spring Boot是一个用于构建新Spring应用的起点,它旨在简化开发人员的工作,使其能够快速地构建可扩展的、可维护的应用程序。 在现代应用程序中,搜索功能是非常重要的。它可以帮助用户快

    2024年02月19日
    浏览(38)
  • 【搜索引擎Solr】Solr:提高批量索引的性能

    几个月前,我致力于提高“完整”索引器的性能。我觉得这种改进足以分享这个故事。完整索引器是 Box 从头开始创建搜索索引的过程,从 hbase 表中读取我们所有的文档并将文档插入到 Solr 索引中。 我们根据 id 对索引文档进行分片,同样的文档 id 也被用作 hbase 表中的 key。

    2024年02月15日
    浏览(35)
  • 【搜索引擎Solr】配置 Solr 以获得最佳性能

    Apache Solr 是广泛使用的搜索引擎。有几个著名的平台使用 Solr;Netflix 和 Instagram 是其中的一些名称。我们在 tajawal 的应用程序中一直使用 Solr 和 ElasticSearch。在这篇文章中,我将为您提供一些关于如何编写优化的 Schema 文件的技巧。我们不会讨论 Solr 的基础知识,我希望您了解

    2024年02月16日
    浏览(29)
  • ElasticSearch集成SpringBoot实践

    Search API Search Request,用于搜索文档,聚合,相关的任何操作,还提供了高亮显示结果文档的方法 使用SearchSourceBuilder,大多数控制搜索行为的选项都可以在SearchSourceBuilder上设置 构建查询,搜索查询是使用QueryBuilder对象创建的,ES的查询DSL支持的每一种搜索查询类型都有一个

    2024年02月03日
    浏览(29)
  • Elasticsearch 搜索测试与集成Springboot3

    Elasticsearch是专门做 搜索 的,它非常擅长以下方面的问题 Elasticsearch对模糊搜索非常擅长(搜索速度很快) 从Elasticsearch搜索到的数据可以根据 评分 过滤掉大部分的,只要返回评分高的给用户就好了(原生就支持排序) 没有那么准确的也能搜出相关的结果(能匹配有相

    2024年01月22日
    浏览(35)
  • springboot——集成elasticsearch进行搜索并高亮关键词

    目录 1.elasticsearch概述 3.springboot集成elasticsearch 4.实现搜索并高亮 (1)是什么: Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。 Lucene 可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但Lucene 只是一个基于java下的库,需要使用 Java 并要

    2023年04月20日
    浏览(96)
  • springboot集成elasticsearch,实现搜索提示补全功能

    注:在此之前需要下载elasticsearch以及拼音分词器。可以查看这篇文章,免费下载,下载完直接解压就行。 https://download.csdn.net/download/weixin_47874230/86514890 spring-data-elasticsearch版本需要与springboot版本对应,此处使用springboot版本为2.2.13.RELEASE

    2024年02月09日
    浏览(30)
  • 搜索引擎 ElasticSearch, Solr 简介

    作者:禅与计算机程序设计艺术 搜索引擎的功能就是帮助用户快速检索到需要的信息。搜索引擎通常由两个主要组成部分:查询解析器和索引器。查询解析器负责将用户输入的查询文本转换成可以搜索的形式;而索引器则是对网页、文档或者其他信息进行索引并存储在数据库

    2024年01月19日
    浏览(31)
  • 【搜索引擎】提高Apache Solr 性能

    这是一个关于我们如何设法克服搜索和相关性堆栈的稳定性和性能问题的简短故事。 在过去的 10 个月里,我很高兴与个性化和相关性团队合作。我们负责根据排名和机器学习向用户提供“个性化和相关的内容”。我们通过一组提供三个公共端点的微服务来做到这一点,即

    2024年02月17日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包