今天在公司搭建了一套Solr服务器,将过程记录下来,方便日后查看学习!
一、Solr全文检索引擎的安装与环境配置
1. 官网下载Solr
下载地址为:http://lucene.apache.org/solr/ 应用版本为8.X
2.解压Solr
临时搭建环境为WIN7 ,将solr压缩版解压至本地磁盘
3.测试启动Solr自带的服务器
3.1启动命令
solr的bin目录 .\solr start
3.2 结束命令
solr的bin目录 .\solr stop -all
4.创建核心实例
1.在D:\solr\solr-8.1.1\server\solr目录创建实例文件夹,名字随意
2.拷贝D:\solr\solr-8.1.1\server\solr\configsets\sample_techproducts_configs下的conf目录到自己创建的实例文件夹
3.重新启动solr服务器 添加核心 name是你创建的实例文件夹名称 instanceDir和name相同
二、Solr8.x中文分词器 IK 的配置
1.IK分词器
1.下载地址为:https://files.cnblogs.com/files/ITDreamer/ikanalyzer-solr6.5.zip
2.将解压的文件夹中的两个jar包放置到 D:\solr\solr-8.1.1\server\solr-webapp\webapp\WEB-INF\lib 目录
3.其它的三个文件放到以下路径: D:\solr\solr-8.1.1\server\solr-webapp\webapp\WEB-INF\classes 没有classes就创建!
- 编辑 D:\solr\solr-8.1.1\server\solr\自定义实例\conf\managed-schema 文件
2. 将一下配置 追加倒文件末尾
<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
<!-- 索引分词器 -->
<analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<!-- 查询分词器 -->
<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
三、Solr8.0 数据库导入数据
- 编辑
D:\solr\solr-8.1.1\server\solr\自定义实例\conf\solrconfig
文件,末尾添加配置信息<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 添加数据库连接信息
<?xml version="1.0" encoding="UTF-8" ?> <dataConfig> <!-- 数据库信息 --> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solr" user="root" password="mysql"/> <document> <!-- document实体 --> <entity name="news" query="SELECT * FROM news"> <!-- 数据库字段映射solr字段 --> <field column="news_id" name="id"/> <field column="news_authorid" name="newsAuthorid"/> <field column="news_title" name="newsTitle"/> <field column="news_cover" name="newsCover"/> <field column="news_time" name="newsTime"/> <field column="news_browse" name="newsBrowse"/> <field column="news_schoolid" name="newsSchoolid"/> <field column="news_categoryid" name="newsCategoryid"/> <field column="news_abstract" name="newsAbstract"/> <field column="news_content" name="newsContent"/> </entity> </document> </dataConfig>
- 当亲路径的managed-schema文件新增
<!--自定义的域--> <field name="newsAuthorid" type="string" indexed="true" stored="true"/> <field name="newsTitle" type="string" indexed="true" stored="true" /> <field name="newsCover" type="string" indexed="false" stored="true" /> <field name="newsTime" type="pdate" indexed="false" stored="true" /> <field name="newsBrowse" type="pint" indexed="false" stored="true" /> <field name="newsSchoolid" type="string" indexed="false" stored="true"/> <field name="newsCategoryid" type="string" indexed="false" stored="true" /> <field name="newsAbstract" type="text_ik" indexed="true" stored="true" /> <field name="newsContent" type="text_general" indexed="false" stored="true" />
- 登陆http://localhost:8983/solr/,进入以下模块,执行excute就导入数据了,没反应过来可以进行refresh status