栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Springboot】集成solr

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Springboot】集成solr

【Springboot】集成solr

正在写一个博客系统,需要使用到关键词搜索,准备使用开源的solr

1、拉取docker镜像

因为是使用vps搭建的环境,直接在vps上拉取一个最新的solr的docker镜像

2、配置docker-compose.yml

直接配置,配置文件如下

version: '2.1'
services:
  solr:
    image: solr
    restart: always
    container_name: blog_system_solr
    ports:
      - 8983:8983

使用命令

sudo docker-compose up -d

成功挂起

3、创建solr核心

使用docker的exec命令创建solr核心

sudo docker exec -it blog_system_solr bin/solr create_core -c Ik_core

成功如下:

4、使用浏览器进行访问

docker中映射的solr端口号为8983,我们使用浏览器直接访问

需要注意,我这里使用的是tx的vps,需要开启防火墙

带上端口号进行访问

选择刚刚创建的核心lk_core

5、上传jar包进行配置

将所需的jar包上传到vps上

上传成功

将jar包复制到docker容器内

sudo docker cp  ik-analyzer-8.3.0.jar blog_system_solr:/opt/solr-8.11.1/server/solr-webapp/webapp/WEB-INF/lib/
sudo docker cp  ik-analyzer-solr7-7.x.jar blog_system_solr:/opt/solr-8.11.1/server/solr-webapp/webapp/WEB-INF/lib/
sudo docker cp  solr-dataimporthandler-8.4.0.jar blog_system_solr:/opt/solr-8.11.1/server/solr-webapp/webapp/WEB-INF/lib/
sudo docker cp solr-dataimporthandler-extras-8.4.0.jar  blog_system_solr:/opt/solr-8.11.1/server/solr-webapp/webapp/WEB-INF/lib/

复制成功:

至于具体的solr什么版本,可以使用如下命令进入solr容器中查看

sudo docker exec -it blog_system_solr /bin/bash

我这里使用的是目前最新版本8.11.1,修复了log4j的洞

6、修改xml配置文件

进入solr容器进行文件夹的创建

sudo docker exec -it --user=root blog_system_solr /bin/bash

cd /opt/solr-8.11.1/server/solr-webapp/webapp/WEB-INF
 
mkdir classes
 
exit

在vps中创建xml文件IKAnalyzer.cfg.xml





        IK Analyzer 扩展配置
                
        ext.dic;
                
        stopword.dic;

            

进入容器

 sudo docker exec -it --user=root blog_system_solr /bin/bash

修改配置

cp /opt/solr-8.11.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-8.11.1.jar /opt/solr-8.11.1/se
rver/solr-webapp/webapp/WEB-INF/lib/

cd /var/solr/data/Ik_core/conf/

vim managed-schema

需要注意,solr容器没有自带vim,需要使用apt下载

sudo apt update

sudo apt install vim

修改managed-schema文件,在最后面加入如下

     
	     
		     
		     
	     
	     
		     
		     
	     
     

     
	     
		     
	     
	     
		     
	     
     

修改solrconfig.xml文件

在最后面添加如下:

 
      
             db-data-config.xml  
         
 

最后,退出容器,在vps中进行重启

sudo docker restart blog-solr
7、进入后台查看是否成功

进入solr后台,如果出现text_cn说明中文分词器配置成功

进行一下中文分词器测试

8、在Springboot项目中集成solr

配置pom.xml文件,添加solr依赖,这里使用目前最新的2.4.13版本


    org.springframework.boot
    spring-boot-starter-data-solr
    2.4.13

在application.yml中配置solr地址

spring:
    data:
        solr:
          host: http://solr运行的ip地址:8983/solr/Ik_core

创建一个solr测试服务层

@Service
public class SolrTestService {

    @Autowired
    private SolrClient solrClient;

    public void add() {

        SolrInputdocument doc = new SolrInputdocument();
        doc.addField("id","954823261479239680");
        doc.addField("blog_title","Java入门基础");
        doc.addField("blog_view_count",10);
        doc.addField("blog_content", "Java入门基础");
        doc.addField("blog_create_time", new Date());
        doc.addField("blog_create_timme", new Date());
        doc.addField("blog_labels", "JavaEE,jvm,后端,Java开发");
        doc.addField("blog_url", "https://www.woodwhale.top");
        doc.addField("blog_category_id","952606168922980352");

        try {
            solrClient.add(doc);
            solrClient.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

测试接口调用

@PostMapping("/solr")
public ResponseResult solrAddTest() {
    solrTestService.add();
    return ResponseResult.SUCCESS("添加成功");
}

spring后台没保存,查看solr后台,进行查询,发现添加成功

同理,更新只要ID一样,就可以进行内容更新,删除只要ID一样,就会删除该数据

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/780924.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号