第一步:修改solrconfig.xml
solrconfig.xml的目录如下:
注意:其中solrhome为自定义的名称,db为自定义的core名称
找到如下代码(717行左右),若和下面代码一样,则不需要修改(一般都不需要修改),若不一样,则修改为下面的代码:
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
注意:需要确认文件中不存在其他的dataimport,如果存在直接替换即可
第二步:修改data-config.xml文件
在同级目录下创建data-config.xml文件(若存在相关文件,则直接编辑),然后配置数据库相关属性
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<!-- 数据源配置 -->
<dataSource name="source1" type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/ahutshop"
user="root"
password="root" />
<document>
<!--
name:数据库中表的名称
dataSource:数据源
pk:唯一标识(不是表的主键)
query:查询语句
column:表的字段名称
name:属性名称
-->
<entity name="goods_type" dataSource="source1" pk="type_id"
query="SELECT g.type_id,g.type_name,g.create_time,g.update_time FROM goods_type g">
<field column='type_id' name='typeId' />
<field column='type_name' name='typeName' />
<field column='create_time' name='createTime' dateTimeFormat='yyyy-MM-dd HH:mm:ss' />
<field column='update_time' name='updateTime' dateTimeFormat='yyyy-MM-dd HH:mm:ss' />
</entity>
</document>
</dataConfig>
第三步:配置managed-schema.xml
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example-DIH-db" version="1.6">
<!-- 保留字段,不能删除,否则报错 -->
<field name="_version_" type="long" indexed="true" stored="true"/>
<!-- 保留字段,整合字段,包含其他可搜索的字段 (通过copyField实现) -->
<field name="text" type="string" indexed="true"
stored="false" multiValued="true"/>
<!-- fields各个属性说明:
name: 必须属性 - 字段名
type: 必须属性 - <types>中定义的字段类型
indexed: 如果字段需要被索引(用于搜索或排序),属性值设置为true
stored: 如果字段内容需要被返回,值设置为true
docValues: 如果这个字段应该有文档值(doc values),设置为true。文档值在门
面搜索,分组,排序和函数查询中会非常有用。虽然不是必须的,而且会导致生成
索引变大变慢,但这样设置会使索引加载更快,更加NRT友好,更高的内存使用效率。
然而也有一些使用限制:目前仅支持StrField, UUIDField和所有 Trie*Fields,
并且依赖字段类型, 可能要求字段为单值(single-valued)的,必须的或者有默认值。
multiValued: 如果这个字段在每个文档中可能包含多个值,设置为true
termVectors: [false] 设置为true后,会保存所给字段的相关向量(vector)
当使用MoreLikeThis时, 用于相似度判断的字段需要设置为stored来达到最佳性能.
termPositions: 保存和向量相关的位置信息,会增加存储开销
termOffsets: 保存 offset 和向量相关的信息,会增加存储开销
required: 字段必须有值,否则会抛异常
default: 在增加文档时,可以根据需要为字段设置一个默认值,防止为空
-->
<!-- 字段名由字母数字下划线组成,且不能以数字开头。两端为下划线的字段为保留字段,
如(_version_)。
-->
<field name="typeId" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="typeName" type="text_smartcn" indexed="true" stored="true" multiValued="false"/>
<field name="createTime" type="date" indexed="false" stored="true"/>
<field name="updateTime" type="date" indexed="false" stored="true"/>
<uniqueKey>typeId</uniqueKey>
<!-- 字段类型定义 -->
<types>
<fieldType name="long" class="solr.TrieLongField" precisionStep="0"
positionIncrementGap="0"/>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
<fieldType name="date" class="solr.TrieDateField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
<!-- 配置中文分词器 -->
<fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
</fieldType>
</types>
</schema>
第四步:拷贝jar
拷贝solr-6.5.1\dist路径下的solr-dataimporthandler-6.5.1.jar,solr-dataimporthandler-extras-6.5.1.jar 到E:\Java\tomcat\apache-tomcat-9.0.26-windows-x64\webapps\solr\WEB-INF\lib目录下
同时拷贝mysql-connector-java-5.1.40.jar链接jar到该目录下
不需要修改任何配置文件即可,继续下面的步骤
第五步:solrconfig.xml
继续打开solrconfig.xml 找到lib标签,查看是否和下面代码一致(一般在75行左右,一般不需要修改)
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/langid/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
第六步
重启tomcat,刷新solr页面即可看到下面界面
full-import 全量导入,delta-import-增量导入
点击Execute就可以导入了,点击左侧Query可查询导入的数据
完成