参考文献
集成环境
windows10
jdk8
solr8.3.1
ik-analyzer-8.3.0
工具资源下载
启动solr
.\solr start
停止solr
.\solr stop -all
重启solr
.\solr restart -port 8983
集成IK分词器
将下好的IK分词器jar 复制到\solr-8.3.1\server\solr-webapp\webapp\WEB-INF\lib下
配置managed-schema 打开solr-8.3.1\server\solr\需要配置的core名字\conf
配置数据库
打开 solr-8.3.1\dist 文件夹,将里面的solr-dataimporthandler-x.x.x.jar 和 solr-dataimporthandler-extras-x.x.x.jar 以及数据库连接驱动 mysql-connector-java.jar 复制到 solr-8.3.1\server\solr-webapp\webapp\WEB-INF\lib 里面
在 solr-8.3.1\server\solr 里面新建文件夹(文件夹的名字就是后面core的名字)
拷贝 solr-8.3.1\server\solr\configsets\_default 文件夹下中的conf文件夹到上面新建的文件夹中(solr-8.3.1\server\solr\configsets\sample_techproducts_configs中其他文件夹中的conf文件夹也可以)
打开 solr-8.3.1\server\solr\新建的文件夹\conf\solrconfig.xml
找到下面的配置
在它上面加上以下配置
class="org.apache.solr.handler.dataimport.DataImportHandler">
data-config.xml
在 solr-8.3.1\server\solr\新建的文件夹\conf中新建文件 data-config.xml,和上面添加配置中的名字统一
type="JdbcDataSource"
driver="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/gov_policy?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true"
user="root"
password="root" />
query是获取全部数据的SQL
deltaImportQuery是获取增量数据时使用的SQL
deltaQuery是获取pk的SQL
parentDeltaQuery是获取父Entity的pk的SQL
打开 solr-8.3.1\server\solr\新建的文件夹\conf\managed-schema 并配置与上面data-config.xml相应的域
测试IK和数据库集成
启动solr,进入后台 http://127.0.0.1:8983/solr
点击Core Admin,新建solr核心 corename和instanceDir的名称与我们新建的文件夹名称相同,然后点击Add Core进创建成功了!
左侧的Core Selector中找到我们新建的文件夹名称打开
测试数据库配置
点击Dataimport,其中在Entity中就可以找到我们在配置文件中添加的数据库名称了,选择数据库,点击Execute
如果找不到,就说明data-config.xml的配置有误
点击左侧Query,什么都不选,直接点击ExecuteQuery就可以看到数据库中的数据了
测试IK分词器
点击Analysis,在Field Value (Index)输入需要分词的语句
**Analyse Fieldname / FieldType **下拉框中选择上面配置的域 r_title
点击右边的Analyse Values就可以看到结果了
错误总结
分词成功,Query查询却查询不了
原因:老数据(在集成IK之前的数据)不会刷新
注意:删除data时,需要关闭solr服务