Solr从数据库数据导入配置
前言
先假设一个场景,有一个类似问答的论坛,存有许多的帖子,每个帖子都有问题标题,问题内容,提问人等信息。问题信息存在数据库中,那么计划使用Solr来开发论坛的搜索功能,因此需要为数据库表的数据再Solr中建立索引。
主要步骤
-
1.创建项目对应的core
-
2.根据要建立索引的数据库数据字段在
managed-schema
创建Field,指定Field Type
-
3.在core的config目录下创建一个名为
data-config.xml
配置文件,主要是完成solr的Field到数据库的映射,指定数据的连接。 -
4.在
solrconfig.xml
中引入mysql和solr数据导入需要的jar。 -
5.打开控制台,执行导入,完成。
创建Solr的Core
-
1、打开dos命令窗口,切换目录到
${solr.home}\bin
,然后输入:solr create -c [corename]
之后回车(前提是先通过solr start
启动solr); -
2、打开solr安装文件,在
/server/solr
下就会出现新的文件夹[corename]
(就是新创建的core); -
3、打开浏览器,输入solr访问路径:http://localhost:8983/solr,就会看到新建的core
下列是创建名为questioncore
的核心的截图:
配置managed-schema文件
定义了id,question_content,question_title
三个Field
,并且对问题内容和标题,指定为text_smartcn类型,这个text_smartcn
是自定义的类型,可以解析中文的词,需要参考前面的文章,进行中文分词配置:;
创建data-config.xml并配置
在该文件中主要指定了数据库的数据源,配置document
和数据库的entity
的映射,下面的配置是一个简单配置数据库wenda
中的question
表到文档的映射,column
指定的时表的字段,name
指定是表字段对应的文档中的field
;除了这些配置外,还有许多的配置,比如多表连接查询等,这里就不详细讲了。
solrconfig.xml中引入Jar包,指定dataImport
需要注意的应该先把需要的jar放到对应的目录下,mysql的连接器是外部的jar包,solr-dataimporthandler的jar
是solr的dataImport工具包。
指定dataImport
的配置文件data-config.xml
,通过新建一个/dataimport
的requestHandler
,指定配置文件,即上面的data-config.xml
文件路径。
执行导入
重启Solr进入控制台,选择dataImport
选项,点击Execute
执行导入操作。
查询一下数据
查询所有,共有32篇文档,至此,我们完成了从数据库表中导入数据到Solr中。