Solr 高度可靠、可扩展和容错,提供分布式索引、复制和负载平衡查询、自动故障转移和恢复、集中配置等。Solr 为世界上许多最大的 Internet 站点的搜索和导航功能提供支持。
文档编写时间: 2023-05-09
文档更新时间:2023-05-09
Demo案例源码仓库:java-test: java练习Demo项目 - Gitee.com
一、安装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
版本兼容:
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后的目录:
2023/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联合查询。
具体配置(即Solr/Lucene的语法)自行百度学习,或参考本文后面的【参考文档】。
二、SpringBoot整合Solr
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、使用SolrClient维护索引增删改查
- 1、添加索引
- 2、查询索引
- 3、更新索引
- 4、删除索引
源码案例见本仓库中SolrClientServiceImpl.java。
三、参考文档:
Lucene官网: https://lucene.apache.org/
Solr官网: https://solr.apache.org/
SpringBoot整合Solr: https://blog.csdn.net/qq_42192693/article/details/103864780
ik-analyzer中文分词器: Gitee 极速下载/ik-analyzer-solr
SpringBootData官方停止对Solr的支持: https://spring.io/projects/spring-data-solr
文章评论