solr6.3+IK+SmartChineseAnalyzer+oracle11G+DIH配置
本例使用solr6.3,并集成IK中文分词和solr6.3自带的智能中文分词,使用DMI从oracle11g导入搜索数据。DIH指solr自带的数据导入工具solr-dataimporthandler。
本例使用WINDOWS环境,linux配置类似。
本例直接使用solr作为服务器,网上大多文章是将solr部署于tomcat,是老的做法。
准备环境,安装JDK1.8 64位(solr6推荐使用64位java),并设置环境变量:JAVA_HOME和PATH
1、下载并解压solr6.3,本例中solr解压目录为:D:\solr-6.3.0
2、修改启动文件,设置时区为中国时区UTC+8,否则日志输出时间会晚8小时
编辑D:\solr-6.3.0\bin\solr.cmd文件
在文件开始部分增加:
set SOLR_TIMEZONE=”UTC+8”
3、准备solr服务程序并集成必要的JAR
solr服务程序位于D:\solr-6.3.0\server\solr-webapp\webapp,不需特殊处理。
- 3.1集成ORACLE jdbc和中文分词包:
ik-analyzer-solr-6.0.jar 来源于https://github.com/cj96248/ik-analyzer-solr6,可自行编译打包
lucene-analyzers-smartcn-6.3.0.jar solr自带位于D:\solr-6.3.0\contrib\analysis-extras\lucene-libs
ojdbc6-11.2.0.1.0.jar 自行下载
复制以上文件到D:\solr-6.3.0\server\solr-webapp\webapp\WEB-INF\lib
- 3.2集成DIH包:
solr-dataimporthandler-6.3.0.jar solr自带位于D:\solr-6.3.0\dist
solr-dataimporthandler-extras-6.3.0 solr自带位于D:\solr-6.3.0\dist
复制以上文件到D:\solr-6.3.0\server\solr-webapp\webapp\WEB-INF\lib
4、搜索索引数据配置
- 4.1复制基础文件:
拷贝D:\solr-6.3.0\server\solr\configsets\basic_configs到D:\solr-6.3.0\server\solr
将basic_configs目录命名为自定的索引数据目录名称,如tdc
- 4.2创建索引数据源:
在D:\solr-6.3.0\server\solr\tdc\conf目录创建数据源文件:db-data-config.xml,内容为:
<dataConfig>
<dataSource name="orcltest" type="JdbcDataSource" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@//192.168.1.17:1521/ORCL" user="orcltest" password="orcltest" />
<document>
<entity dataSource="orcltest" name="TBTEST" query="select id,name,type_name,refer,create_time from TBTEST "
deltaImportQuery="select id,name,type_name,refer,create_time from TBTEST where to_char(create_time,'yyyy-mm-dd hh24:mi:ss') >'${dataimporter.last_index_time}'"
deltaQuery="select id,name,type_name,refer,create_time from TBTEST where to_char(create_time,'yyyy-mm-dd hh24:mi:ss') >'${dataimporter.last_index_time}'"
>
<field column="id" name="id"/>
<field column="name" name="name"/>
<field column="type_name" name="type_name"/>
<field column="refer" name="refer"/>
<field column="create_time" name="create_time" dateTimeFormat='yyyy-MM-dd HH:mm:ss' />
</entity>
</document>
</dataConfig>
- 4.3设置DIH
编辑D:\solr-6.3.0\server\solr\tdc\conf\solrconfig.xml在Request Handlers部分增加DIH配置。
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
- 4.4设置搜索字段及分词方式:
编辑D:\solr-6.3.0\server\solr\tdc\conf\managed-schema文件,完成搜索字段及分词方式配置。
注意:solr6以上是修改managed-schema文件,不必再创建schema.xml文件。
<field name="name" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="type_name" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="refer" type="text_smart" indexed="true" stored="true" multiValued="false" />
<field name="create_time" type="date" indexed="true" stored="true" />
<!--IK中文分词-->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<!--solr6.3自带的中文分词-->
<fieldType name="text_smart" class="solr.TextField" >
<analyzer type="index" class="org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer"/>
<analyzer type="query" class="org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer"/>
</fieldType>
5、启动停止solr:
使用命令行,进入命令目录
cd D:\solr-6.3.0\bin
查看命令帮助
solr -help
启动solr,默认端口8983
solr start
停止全部solr服务
solr stop -all
6、使用solr控制台:
http://192.168.1.16:8983/solr
注意:默认的UI中core管理功能不可用,需要点击右上角Use original UI