solr 导入sqlserver 数据源
公司有个项目用到了solr所以想研究一下,这两天网上查了很多资料,也入了很多坑,下面就来记录一下艰辛的solr入门之路。
一、solr和jdk版本兼容问题
参考solr官方文档:Java Requirements
二、solr安装:
1、现在基本用solr7.7.1或者8.8.1,以前很多人用的是7以前的版本,我这边下载的是8.8.1版本,高版本和低版本的区别是高版本自带jetty(severlet容器),无需安装tomcat,但是必须要安装JDK。
2、下载地址:solr下载,windows2系统一般下载.zip结尾文件。
3、目录说明
主要目录说明:
- \bin目录:可以直接通过cmd在此目录下执行solr start 启动solr,启动后直接可以使用打开solr管理界面
- \server\solr-webapp:这个是solr服务默认核心目录,目录中自带的jetty
- \server\solr:是solr的core项目,solr的core项目默认都在此路径
4、启动solr:打开cmd,切换到solr-8.8.1\bin目录,通过命令solr start(solr start -f 前台启动,可以查看启动的信息和错误日志)启动,启动后打开http://localhost:8983/即可看到solr主界面
三、配置sqlserver数据源
1、下载JDBC Driver的jar包(包含jdk对应版本说明)并且将下载的jar包复制到solr的后台web服务中(路径:solr-8.8.1\server\solr-webapp\webapp\WEB-INF\lib)
2、复制dataimport jar包(如下如)到solr的后台web服务中(路径:solr-8.8.1\server\solr-webapp\webapp\WEB-INF\lib)
注意:此三个jar复制好后,无需配置路径,启动后solr服务后,solr会自动抓取到这三个包,因为它们就在solr自带的web 服务核心路径中。
3、创建core项目:启动solr后,在cmd中执行命令solr create_core -c FirstCore,即可创建一个core,默认路径在solr-8.8.1\server\solr中(此core路径可以配置)
4、配置data-config.xml,在路径solr-8.8.1\server\solr\FirstCore\conf中新建data-config.xml文件:其中的数据库名、表名自己去改一下
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=OrderMeal" user="sa" password="sa123"/>
<document name="Info">
<entity name="zpxx" transformer="ClobTransformer" pk="id"
query="select id,city from [OrderMeal].[dbo].[UserInfo]"
deltaImportQuery="select id,city from [OrderMeal].[dbo].[UserInfo]"
deltaQuery="SELECT id FROM [OrderMeal].[dbo].[UserInfo] where adddate > '${dataimporter.last_index_time}'">
<field column="id" name="id"/>
<field column="city" name="city"/>
</entity>
</document>
</dataConfig>
配置schema文件:这里是managed-schema文件,在文件中加入一个字段配置,主要是和data-config.xml中的字段搭配:
<field name="city" type="string" stored="false" multiValued="true" />
建议:初学者使用默认id作为主键,摸清原理 后,后面自己慢慢改也行。
5、配置solrconfig.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
加入以上代码
保存所有文档即可。
最后重新启动solr: solr restart -p 8983
在solr界面中按照下图操作,点击Excute后可以点击左边的Refresh Status按钮来刷新执行状态,可以看到fetched:后面的数量
最后注意:如果不能正常启动或者导入数据,在启动solr时使用solr start -f命令 ,这样出现异常就会在cmd中打印出来,方便知道哪里出错了。