SpringBoot整合Solr实现文档检索

 更新时间:2023年08月24日 11:31:00   作者:skywsp  
Solr高度可靠、可扩展和容错,提供分布式索引、复制和负载平衡查询、自动故障转移和恢复、集中配置等,Solr 为世界上许多最大的 Internet 站点的搜索和导航功能提供支持,本文将给大家介绍SpringBoot整合Solr实现文档检索,需要的朋友可以参考下

一、安装solr

1.1 下载

官方下载地址: https://solr.apache.org/downloads.html

历史版本下载地址:https://archive.apache.org/dist/lucene/solr/

solr文档:https://solr.apache.org/guide/solr/latest/index.html

Demo案例源码仓库:java-test: java练习Demo项目 - Gitee.com

版本兼容:

solr-9.x  --> JDK11
solr-6.x以上  --> JDK8

注:本文档对应的版本是solr-8.11.2

下载中文分词器ik-analyzer,仓库地址:Gitee 极速下载/ik-analyzer-solr

<!-- Maven仓库地址 -->
<dependency>
    <groupId>com.github.magese</groupId>
    <artifactId>ik-analyzer</artifactId>
    <version>8.5.0</version>
</dependency>

下载MySQL数据库驱动包,仓库地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>使用SpringBoot对应的版本即可</version>
</dependency>

1.2 安装

1、安装 解压solr-8.11.2.tgz后的目录:

023/05/09  13:57    <DIR>          bin            [Solr的启动停止命令]
2023/05/09  11:02    <DIR>          contrib        [Solr依赖的三方包]
2023/05/09  11:02    <DIR>          dist           [Solr自身源码的构建结果]
2023/05/09  11:02    <DIR>          docs           [文档连接]
2023/05/09  11:02    <DIR>          example        [案例]
2023/05/09  11:02    <DIR>          licenses       [三方授权文档]
2023/05/09  11:03    <DIR>          server         [重点重点重点!jetty及solrCore的目录]
2022/06/13  23:41           980,599 CHANGES.txt
2022/05/13  05:51            13,078 LICENSE.txt
2022/06/01  00:43           783,467 LUCENE_CHANGES.txt
2022/05/13  05:51            30,011 NOTICE.txt
2022/05/13  05:51             7,490 README.txt

将下面的四个jar包,拷贝到.\server\solr-webapp\webapp\WEB-INF\lib目录下。

  • .\dist\solr-dataimporthandler-8.11.2.jar
  • .\dist\solr-dataimporthandler-extras-8.11.2.jar
  • 前面下载的ik-analyzer-solr包
  • 前面下载的mysql-connector-java包

2、启动 打开cmd命令窗口,进入到【solr解压目录下\bin】目录,执行启动命令:

solr start

3、创建core 打开cmd命令窗口,进入到【.\bin】目录,执行启动命令:

solr create_core -c idaas_core(自定义core名称) -d sample_techproducts_configs

创建成功后,新建core对应的目录在.\server\solr\idaas_core下,其中conf子目录下:

  • solrconfig.xml : 配置查询、更新、数据导入等requestHandler。
  • managed-schema : 配置中文分词器ik-analyzer、field字段索引规则等,主要工作就是配置该文件

4、配置core

  • 配置fieldType,使用ik-analyzer中文分词器 配置field索引存储规则。
  • 配置copyField联合查询。

二、SpringBoot整合Solr

2.1、项目配置

SpringBoot项目添加依赖

<dependency>
    <!-- Spring官方已停止对solr的支持 https://spring.io/projects/spring-data-solr -->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-solr</artifactId>
    <version>2.4.9</version>
</dependency>

在application.yml中配置Solr服务器信息

spring:
  data:
    solr:
      # spring data框架定义的访问地址,不能提供索引库定义,是直接连接数据源的,可以根据索引库命名访问任意索引库,实现数据访问的。
      host: http://localhost:8983/solr
      # solr集群
      # zk-host: http://xxx,http://xxx

2.2、使用SolrClient维护索引增删改查

  • 1、添加索引
  • 2、查询索引
  • 3、更新索引
  • 4、删除索引

源码案例见本仓库中SolrClientServiceImpl.java。

到此这篇关于SpringBoot整合Solr实现文档检索的文章就介绍到这了,更多相关SpringBoot Solr文档检索内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 剖析Fork join并发框架工作窃取算法

    剖析Fork join并发框架工作窃取算法

    这篇文章主要为大家剖析介绍了Fork join并发框架工作窃取算法的示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Java InputStream的多种使用详解

    Java InputStream的多种使用详解

    这篇文章主要介绍了Java InputStream的多种使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • SpringBoot集成Tess4J实现OCR的示例代码

    SpringBoot集成Tess4J实现OCR的示例代码

    Tess4J是一个基于Tesseract OCR引擎的Java接口,可以用来识别图像中的文本,说白了,就是封装了它的API,让Java可以直接调用,本文给大家介绍了SpringBoot集成Tess4J实现OCR的示例,需要的朋友可以参考下
    2024-12-12
  • Java 使用JdbcTemplate 中的queryForList发生错误解决办法

    Java 使用JdbcTemplate 中的queryForList发生错误解决办法

    这篇文章主要介绍了Java 使用JdbcTemplate 中的queryForList发生错误解决办法的相关资料,需要的朋友可以参考下
    2017-07-07
  • Java中为什么ArrayList初始化容量大小为10

    Java中为什么ArrayList初始化容量大小为10

    这篇文章主要介绍了Java中为什么ArrayList初始化容量大小为10,带着问题围展开详细的介绍,感兴趣的小伙伴可以参考一下
    2022-06-06
  • SpringBoot实现文件下载的限速功能

    SpringBoot实现文件下载的限速功能

    在SpringBoot项目中,实现文件下载的限速功能可以有效控制服务器带宽的占用,并防止单个用户消耗过多的资源,本文将通过具体的代码示例和详细的流程解释,介绍如何在SpringBoot项目中实现文件下载的限速功能,需要的朋友可以参考下
    2024-07-07
  • 一篇文章带你了解Java Spring基础与IOC

    一篇文章带你了解Java Spring基础与IOC

    这篇文章主要介绍了Java Spring基础与IOC,文中讲解的相关内容非常详细,也运用了大量的代码进行讲解,感兴趣的小伙伴可以参考一下
    2021-08-08
  • SpringBoot项目如何添加2FA双因素身份认证

    SpringBoot项目如何添加2FA双因素身份认证

    双因素身份验证2FA是一种安全系统,要求用户提供两种不同的身份验证方式才能访问某个系统或服务,国内普遍做短信验证码这种的用的比较少,不过在国外的网站中使用双因素身份验证的还是很多的,这篇文章主要介绍了SpringBoot项目如何添加2FA双因素身份认证,需要的朋友参考下
    2024-04-04
  • springmvc利用jquery.form插件异步上传文件示例

    springmvc利用jquery.form插件异步上传文件示例

    本篇文章主要介绍了springmvc利用jquery.form插件异步上传文件示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01
  • Java 面试题和答案 -(上)

    Java 面试题和答案 -(上)

    本文主要介绍Java 面试题和答案,这里整理了Java面试中出现的各种题型,和相应知识点,有需要的小伙伴可以好好参考下,帮助大家面试成功
    2016-09-09

最新评论