solr7.x~8.x安装 使用 升级

本文指导如何下载并安装Solr 7.7.3,包括设置基本身份验证、配置security.json、管理用户权限,以及使用IKAnalyzer进行中文分词。还介绍了创建Core、数据库连接和版本升级等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载安装

在这里插入图片描述

链接: 官网

https://archive.apache.org/dist/lucene/solr/
链接: 下载solr仓库位置
在这里插入图片描述

安装

下载包
wget https://archive.apache.org/dist/lucene/solr/7.7.3/solr-7.7.3.tgz
解压文件
tar zxf solr-7.7.3.tgz

使用

配置密码文件

参考:链接: 启用基本身份验证
用户“solr” 密码SolrRocks’。

通常在(server/solr)下创建security.json文件
{
"authentication":{
   "class":"solr.BasicAuthPlugin",
   "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="}
},
"authorization":{
   "class":"solr.RuleBasedAuthorizationPlugin",
   "permissions":[{"name":"security-edit",
      "role":"admin"}],
   "user-role":{"solr":"admin"}
}}
#新增或修改密码(如果用户名存在,就修改密码,否则就创建用户)
curl --user solr:SolrRocks http://localhost:8983/api/cluster/security/authentication -H 'Content-type:application/json' -d '{"set-user": {"solr":"solr","tom":"tom"}}'

#删除用户
curl --user solr:SolrRocks http://localhost:8983/api/cluster/security/authentication -H 'Content-type:application/json' -d '{"delete-user": ["tom"]}'

使用
cd solr-7.7.3/
启动
bin/solr start  
系统所有限制 ulimit -a 使用+-force’
bin/solr start  -force //不处理
重启
bin/solr restart
bin/solr restart -force
停止
bin/solr stop 
bin/solr stop -force
bin/solr stop -all
查看状态
bin/solr status

端口修改(防火墙操作请自行搜索)

solr-7.7.3/bin/solr.in.sh文件搜索默认端口:8983

# Sets the port Solr binds to, default is 8983
#SOLR_PORT=8983 修改这里

jvm修改

solr-7.7.3/bin/solr.in.sh文件搜索:SOLR_JAVA_MEM

# Expert: If you want finer control over memory options, specify them directly
# Comment out SOLR_HEAP if you are using this though, that takes precedence
#SOLR_JAVA_MEM="-Xms512m -Xmx512m"修改这里

创建Core

命令创建、手动创建、admin网页创建

1、命令创建
bin/solr create -c <name>
默认位置 
$SOLR_TIP/server/solr
复制默认配置到core
$SOLR_TIP/server/solr/configsets/_default/conf

2、手动创建,导入
在文件夹/server/solr/home/solr/solr-home/<创建想要的Core名称>
1、复制默认配置到core
$SOLR_TIP/server/solr/configsets/_default/conf

2、创建文件core.properties
写入

name=<创建想要的Core名称>

下面三项可以不写,默认在Core下面
config=solrconfig.xml
schema=schema.xml
#数据保存文件夹路径
dataDir=/solr-7.7.3/server/solr/home/solr/solr-home/site/data

在这里插入图片描述
在这里插入图片描述

2、admin网页创建

使用Core Admin
http://localhost:8983/solr
在这里插入图片描述

IKAnalyzer ik分词器使用

链接: ik-analyzer-solr,可以自己修改
链接: 备份Git地址,可以修改成自己想要的版本

单机版Solr
1、导入jar包

solr7.7.3/server/solr-webapp/webapp/WEB-INF/lib/目录下;

2、将resources目录下的5个配置文件

webapp/WEB-INF/classes/目录下;

① IKAnalyzer.cfg.xml
② ext.dic
③ stopword.dic
④ ik.conf
⑤ dynamicdic.txt
3、配置Core的managed-schema,添加ik分词器,示例如下;
<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
  <analyzer type="index">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

<-- 需要分词字段 -->
    <field name="name" type="text_ik" indexed="true" stored="true"/>
    <field name="phone" type="string" indexed="true" stored="true"/>
<-- 多个字段合并成一个字段用于搜索 -->
    <field name="search" type="text_ik" indexed="true" stored="false" multiValued="true"/>
    <copyField source="name" dest="search"/>
    <copyField source="phone" dest="search"/>
4、启动Solr服务测试分词;可以创建Core后在试

在这里插入图片描述

配置数据库数据对应

1、导入jar

复制dist目录下的
solr-dataimporthandler-xxx.jar
solr-dataimporthandler-extras-xxx.jar
到server/solr-webapp/webapp/WEB-INF/lib目录下

导入mysql驱动jar包到server/solr-webapp/webapp/WEB-INF/lib目录下

2、创建db-data-config.xml到core的conf目录下
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
                url="jdbc:mysql://192.168.0.1:3306/test" user="mydbname" password="Abc2JKHKJv@"/>
    <document name="user">
        <entity name="user" dataSource="source_1"
                query="SELECT id,user_name,phone
	FROM t_user WHERE is_deleted=0">
            <field column="id" name="id"/>
            <field column="name" name="name"/>
            <field column="phone" name="phone"/> 
        </entity>
    </document>
</dataConfig>
3、solrconfig.xml配置数据库连接信息
每一个Core一样
 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">    
    <lst name="defaults">    
      <str name="config">solr-data-config.xml</str>          
    </lst>    
  </requestHandler> 
4、managed-schema文件,再文件末尾加上:
<-- 数据库字段对应关系 -->
<-- type="text_ik" 设置使用分词器 -->
  <field name="name" type="text_ik" indexed="true" stored="true"/>
  <field name="phone" type="string" indexed="true" stored="true"/>
5、重启服务 导入数据

在这里插入图片描述

升级 solr7 到solr8

等于版本升级,只需要吧老版本
1、密码配置文件
2、jar包版本(数据库相关,ikik分词器等等对应更新)
3、手动在新版本下面创建Core 并且使用新版本模板,再设置数据关系就是上面《配置数据库数据对应》
4、重启,更新Core数据

solr8.11.2 更新

在下面网站下载
https://mvnrepository.com/
然后在本机maven文件夹找到jar

替换安全jar
重启
本地测试可以启动

原配
calcite-core-1.27.0.jar
手动更新
calcite-core-1.32.0.jar

原配
commons-text-1.6.jar
手动更新
commons-text-1.10.0.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoyao1994

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值