solr本身可以实现数据的导入功能,同时其提供jar还能整合如java、python等语言来导入。本文针对solr本身的数据导入功能。
1、导入jar到lib下
solr-7.2.1\dist\solr-dataimporthandler-7.2.1.jar和mysql-connector-java-5.1.35.jar两个jar包放入
solr-7.2.1\server\solr-webapp\webapp\WEB-INF\lib下。
2、新建数据查询文档
在solr_home/core/conf目录下,新建data_config.xml并编写代码:
1 | <?xml version="1.0" encoding="UTF-8" ?> |
3、添加field
solr_home/core/conf目录下的managed-schema文件中,添加上述字段
1 | <field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/> |
4、添加requestHandler
在solr_home/core/conf/solrconfig.xml文件中的requestHandler标签前面加上如下代码
1 | <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> |
5、浏览器中完成导入
在浏览器打开solr,在DataImport中执行导入,左侧绿色字体为导入状态(可点击Refesh Status按钮刷新),如图:
6、查询
在Query中查看导入结果,如图:
7、疑问
在第二歩中的增量查询,使用了时间比较,一个时间是数据库的timestamp(服务器时间),另一个是solr更新时间。
但是solr使用的是UTC时间,比我们少8个小时。
解决方案参考:彻底解决Solr日期类型的时区问题