下载安装
链接: 官网
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