Solr8 从 MySQL8.0.20中 导入数据
修改 solrconfig.xml 文件
修改solrhome\demo_core\conf
文件夹下的solrconfig.xml,添加dataimport
为了便于维护,我们就在requestHandler起始位置,约720行处,添加如下内容
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
创建data-config.xml
data-config.xml的作用:数据库连接相关信息、SQL以及查询结果映射对应域中
在solrconfig.xml同级目录下,创建data-config.xml
添加如下内容:
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<!-- 这是数据库的基本信息-->
<dataSource type="JdbcDataSource"
driver="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/solr?userSSL=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC"
user="root"
password="szy10086"/>
<!-- 这是对于的表的信息,如果表中存在id ,name等特殊字段,请避免冲突,将name属性改成不同的名称 如<field column="id" name="bid"/> -->
<document>
<entity name="products" query="select pid,pname,catalog_name,price,description,picture from products ">
<field column="pid" name="id"/>
<field column="pname" name="prod_pname"/>
<field column="catalog_name" name="prod_catalog_name"/>
<field column="price" name="prod_price"/>
<field column="description" name="prod_description"/>
<field column="picture" name="prod_picture"/>
</entity>
</document>
</dataConfig>
query
:代表查询的SQL语句column
:SQL查询的列名Name
:solr域field中的域名
定义域
修改同级目录下的managed-schema文件
在之前配置的中文分词器后配置field域(这里配置的域名要与data-config中的域名一样):
其中prod_pname和prod_description需要模糊查询(中文分词),故将其类型改为solr_cnAnalyzer
<!-- ChineseAnalyzer 自带的中文分词器 -->
<fieldType name="solr_cnAnalyzer" 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>
<field name="prod_pname" type="solr_cnAnalyzer" indexed="true" stored="true" required="true" />
<field name="prod_catalog_name" type="string" indexed="true" stored="true" required="true" />
<field name="prod_price" type="pdouble" indexed="true" stored="true" required="true" />
<field name="prod_description" type="solr_cnAnalyzer" indexed="true" stored="true" required="true" />
<field name="prod_picture" type="string" indexed="false" stored="true" required="true" />
启动 solr 服务器
在Dataimport中点击Execute,开始导入数据,可以点击Auto-Refresh-Status,查看刷新状态。
在Query界面点击Execute Query,能查询到数据说明从mysql中导入数据成功
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: