前面几篇关于solr的文章在导入数据进行分词、索引,都是通过导入本地的XML或者直接在页面上填写XML。但是现实中,很多情况下数据源是来自于数据库的。所以,本文就以mysql为例进行一个较详细的介绍。其使用到的是“dataimport”。
1、在conf\solrconfig.xml中添加,增加导入数据功能
data-config.xml
2、在conf\目录下添加一个数据源data-config.xml,代码如下:
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://172.0.0.1:3306/cmntadmin"
user="root"
password=""/>
这里配置了数据源的信息。entity的内容来自于“query”查询得到的结果。field对应查询出的字段信息:“column”对应数据库字段名、“name”必须对应“schema.xml”中配置的field值。
3、创建schema.xml语法<?xml version="1.0" encoding="UTF-8" ?>
id
contents
schema.xml 里重要的字段:
要有这个copyField字段SOLR才能检索多个字段的值(以下设置将同时搜索 id,name,contents中的值)contents
copyField是用来复制你一个栏位里的值到另一栏位用. 如你可以将name里的东西copy到default里, 这样solr做检索时也会检索到name里的東西.
4、导入相关jar包
因为本文使用mysql作为数据源,所以需要驱动包(mysql-connector.jar);另外,使用dataimport功能还需要solr-dataimporthandler-4.7.2.jar和solr-dataimporthandler-extras-4.7.2.jar,这两个jar包不需要下载,在\dist目录下就有。
copy这三个jar包到tomcat下的solr工程下的lib目录下(webapps\solr\WEB-INF\lib)。
5、创建索引
重启tomcat。
A)、可以通过url的方式触发创建全量索引:
B)、通过admin页面上的“dataimport”模块进行操作: