这里记录linux上的安装过程
一、下载安装包
https://lucene.apache.org/solr/downloads.html
二、解压安装
这里我放倒了/usr/local/solr目录下
解压命令: tar -zxvf solr-xxx.tgz
这个时候其实solr就已经可以启动了。执行一下命令。
/usr/local/solr/solr-8.1.1/bin solr start
但是如果是用root用户启动给出一个提示,并终止运行,需要加上一个修饰
/usr/local/solr/solr-8.1.1/bin solr start -force
这样就可以访问了。
http://ip+:8983/solr
接下来配置实例(solrcore)
cd /usr/local/solr/solr-8.1.1/server/solr
这里需要创一个实例的文件夹,我创建的是book。
创建好了需要干一件惊天动地的大事儿了copy,洋气吧~~~~
现在进到configsets文件夹下 cd /usr/local/solr/solr-8.1.1/server/solr/configsets 要复制的部分就是_default下的conf目录
cp -r /usr/local/solr/solr-8.1.1/server/solr/configsets/_default/conf/ /usr/local/solr/solr-8.1.1/server/solr/sysuser
然后需要把安装目下的dist目录中的solr-dataimporthandler-extras-xxx.jar、solr-dataimporthandler-8.1.1.jar复制到 /usr/local/solr/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib 路径下
此外因为要连接到数据还要一个mysql的驱动包mysql-connector-java-8.0.18.jar。顺便把中文分词器也扔进去 ik-analyzer-8.3.0.jar。这要差不多需要的依赖就配好了,接下来就是配置文件了。
现在回到刚刚创建的实例的conf目录下 cd /usr/local/solr/solr-8.1.1/server/solr/sysuser/conf
在solrconfig.xml中添加一下节点,注意一定与其他的类似节点同级 可以直接搜索/select,在该节点之上添加
vi solrconfig.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
这里配置中配置了一个data-config.xml的配置文件,他是数据库的配置文件,默认是没有需要自己创建
touch data-config.xml
编辑该文件 vi data-config.xml
添加以下内容
<?xml version="1.0" encoding="UTF-8" ?> <dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/xuan?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull" user="root" password="lhfadmin"/> <document> <entity name="book" pk="id" transformer="DateFormatTransformer" query="SELECT id,name,jianjie FROM book">
<field name="userid" type="text_ik" indexed="true" stored="true"/>
<field name="username" type="text_ik" indexed="true" stored="true"/>
<field name="realName" type="text_ik" indexed="true" stored="true"/>
<field name="phone" type="text_ik" indexed="true" stored="true"/>
</entity> </document> </dataConfig>
配置中文分词器,jar已经上边导入了,直接配置配置文件就好了
vi managed-schema
在最后便添加:
<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> <!-- 这是IK配置域,在这里不重要--> <field name="title_ik" type="text_ik" indexed="true" stored="true"/> <field name="content_ik" type="text_ik" indexed="true" stored="true" multiValued="true"/> <!--这是配置从数据库拿出来的数据配置域 -->
<field name="userid" type="text_ik" indexed="true" stored="true"/>
<field name="username" type="text_ik" indexed="true" stored="true"/>
<field name="realName" type="text_ik" indexed="true" stored="true"/>
<field name="phone" type="text_ik" indexed="true" stored="true"/>
这样就ok了,重启solr
/usr/local/solr/solr-8.1.1/bin/solr restart -force
如果这个位置没有刚才的实例,手动添加进去即可
点击上边的add core,
框红框的地方名字是一样的,和文件夹名字相同。剩下的没有改变就默认就好了。schema.xml和managed-schema可以理解成是一个玩意,不用理会。
添加后实例后就需要导入数据库的数据了
这个时候会发现并没有导入进去,看下日志发现
然后在conf目录下添加 dataimport.properties文件即可
然后重启
重新导入
这时查询可以看到导入的数据