Solr8 从 MySQL8.0.20中 导入数据

修改 solrconfig.xml 文件

修改solrhome\demo_core\conf文件夹下的solrconfig.xml,添加dataimport

Solr 导入数据库数据

为了便于维护,我们就在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

添加如下内容:

Solr 导入数据库数据

<?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&amp;useUnicode=true&amp;characterEncoding=UTF8&amp;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文件

Solr 导入数据库数据

在之前配置的中文分词器后配置field域(这里配置的域名要与data-config中的域名一样):

Solr 导入数据库数据

其中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,查看刷新状态。

Solr 导入数据库数据

在Query界面点击Execute Query,能查询到数据说明从mysql中导入数据成功

Solr 导入数据库数据

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!