Wetts's blog

Stay Hungry, Stay Foolish.

0%

Solr-同步MySQL的数据到Solr中

  • 首先创建一个core。

  • conf下创建文件。

    • managed-schema/schema.xml 这个是索引的结构定义的文件,定义了字段的名称,类型,索引与否,分词方法等
    • solrconfig.xml 这个文件是solr的基础文件,主要配置了solr的各种web请求处理器、日志、缓存等
    • db-data-config.xml 这个是配置连接mysql数据库的配置信息,名称可以自己修改,也是放在conf 下面(没有可以自行创建)

managed-schema/schema.xml

1
2
<field name="name" type="string" indexed="true" stored="false" />
<field name="loginName" type="string" indexed="true" stored="false" />

solrconfig.xml

1
2
<lib dir="/Users/wetts/.m2/repository/mysql/mysql-connector-java/5.1.38" regex=".*\.jar" />
<lib dir="${solr.install.dir}/libexec/dist/" regex="solr-dataimporthandler-.*\.jar" />
1
2
3
4
5
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>

db-data-config.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/jeesite"
user="root"
encoding="UTF-8"
password=""/>
<document>
<entity name="sys_user" processor="SqlEntityProcessor" pk="id"
query="select id,login_name,name from sys_user">
<field name="id" column="id" />
<field name="loginName" column="login_name" />
<field name="name" column="name" />
</entity>
</document>
</dataConfig>