Solr 中 core 创建后的数据导入

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Solr 中 core 创建后的数据导入

前言

在笔记1中,我们已经介绍了Solr下载及单节点启动和配置,以及如何创建core,但是如何进行数据导入却还没有介绍。这篇文章就将教你在创建core之后,应该如何进行相关配置并导入数据;


配置数据库

笔记1中,在创建core时,有一个solrconfig.xml文件,如下图所示:


image.png

image.png打开该文件,并在文件的config标签中添加下列内容,添加后如图所示:

<requestHandler name="/dataimport"  class="solr.DataImportHandler"> 
      <lst name="defaults"> 
      <str name="config">data-config.xml</str> 
      </lst> 
    </requestHandler>

image.png创建data-config.xml文件,如图所示;image.png

  1. data-config.xml文件中添加如下内容;
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig> 
  <!--dataSource标签,配置数据库相关信息-->
  <dataSource name = "db_weibo" type="JdbcDataSource"   
    driver="com.mysql.jdbc.Driver"
    url="jdbc:mysql://127.0.0.1:3306/mwyq"
    user="root"
    password="123456"/>  
  <document>
    <!--以下的dataSource指定上边的dataSource标签中的name属性,并不是必须要加的,除非你配置了多个数据源,这里我是一个数据源,所以,下边的dataSource属性是可以去掉的,另外,pk属性指定的是manage-schema文件中的uniqueKey标签中的值,即主键-->  
    <entity name="weibo" dataSource="db_weibo"  PK="weibo_id"
        query="select weibo_id,weibo_content,weibo_author,weibo_emotion,weibo_time,weibo_lang from weibo" 
        deltaImportQuery="select weibo_id,weibo_content,weibo_author,weibo_emotion,weibo_time,weibo_lang from weibo where weibo_id= '${dih.delta.id}'"
                deltaQuery="select weibo_id,weibo_content,weibo_author,weibo_emotion,weibo_time,weibo_lang from weibo where weibo_time > '${dataimporter.last_index_time}'">
        <!--以下的字段column属性对应数据库中字段名称,name是对应solr这边配置的名称;
        注意id,默认名称即为id,表示solr这边一条数据的主键,为需要的字段建立索引关系
        如果数据库中的主键不是id,比如是objectId,那上边的query需要为它起一个别名为id即可-->
        <field column="weibo_id" name="id"/>
        <field column="weibo_id" name="weibo_id"/>
        <field column="weibo_content" name="weibo_content"/>
        <field column="weibo_author" name="weibo_author"/>
        <field column="weibo_emotion" name="weibo_emotion"/>
        <field column="weibo_time" name="weibo_time"/>
        <field column="weibo_lang" name="weibo_lang"/>
    </entity> 
  </document>  
</dataConfig>  

PS: solr有全局索引和增量索引,所以上述配置中有两次query操作;


全局索引:对应上述配置query,即将所有要建立索引的数据均重新建立一般,当数据量很大时除开第一次导入数据之外不推荐,比较耗时;


增量索引:对应上述配置deltaQuery,即将数据库中新增数据建立索引,加入solr查询中;


数据库驱动包:因为配置中用到MySQL数据库,因此需要导入MySQL数据库驱动包,从网上找到驱动包后,将其放入solr-xxx/webapps/solr/WEB-INF/lib文件夹中;


配置managed-schema文件


即在笔记1中创建core后所出现的schema.xml文件,该文件配置内容为solr索引中引入字段的类型设置,对应上一步data-config.xml中配置的field标签。打开schema.xml文件,添加如下配置;


 <!--  name属性为引入字段在solr中的名称。
       type表示类型,solr中会有很多类型,这个在managed-schema中你会看到很多的fieldType标签,都是solr中的类型
       indexed:表示是否建立索引,true为建立,如果为false,则该字段不能作为条件查询出来;
       stored:表示是在solr中显示,如果这里设置为false,将会在solr中查询不到。
       multiValued false:表示是否关联查询字段 
 -->
 <field name="weibo_id" type="pint" indexed="true" stored="true" required="true" multiValued="false" />
 <field name="weibo_content" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
 <field name="weibo_author" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
 <field name="weibo_emotion" type="string" indexed="true" stored="true" required="true" multiValued="false" />
 <field name="weibo_time" type="pdate" indexed="true" stored="true" required="true" multiValued="false" />
 <field name="weibo_lang" type="string" indexed="true" stored="true" required="true" multiValued="false" />

进入可视化访问界面,然后导入数据;image.png查看导入后的数据,进入访问界面,进入Query选项,直接Execute Query就可以查看刚才导入的数据,如下图所示;image.png条件查询,在上一步的Queryq选项中输入要查询的条件,然后直接Execute Query就可以符合查询条件的数据,如下图所说;image.pngPS :进行条件查询时,需要修改solrconfig.xml中的默认检索,将其修改成你想要检索的字段,如下图;image.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
索引
18Solr管理索引库
18Solr管理索引库
14 0
|
11月前
|
SQL HIVE
Hdfs 导入Hive,时间相关的字段 导入后为NULL
Hdfs 导入Hive,时间相关的字段 导入后为NULL
67 0
|
消息中间件 NoSQL Kafka
flink自定义sink,以入solr、mongodb为例
自定义sink需要继承 RichSinkFunction,重写open、invoke、close三个方法,open方法主要实现一些公共资源的开启工作,如mongo、solr的连接客户端。invoke会在每条数据进入后调用,主要写一些数据的转化、插入、查询等具体的实际业务。
260 0
|
Java
【Solr】之使用Java连接solr完成增删改查等操作-5
【Solr】之使用Java连接solr完成增删改查等操作-5
158 0
【Solr】之使用Java连接solr完成增删改查等操作-5
|
消息中间件 JSON 分布式计算
Apache Doris Stream load 数据导入方式
Stream load 是一个同步的导入方式,用户通过发送 HTTP 协议发送请求将本地文件或数据流导入到 Doris 中。Stream load 同步执行导入并返回导入结果。用户可直接通过请求的返回消息判断本次导入是否成功。
1041 0
Apache Doris Stream load 数据导入方式
|
SQL 分布式计算 关系型数据库
Apache doris Datax DorisWriter扩展使用方法
ataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能。
717 0
Apache doris Datax DorisWriter扩展使用方法
|
关系型数据库 MySQL 数据库
Solr 如何自动导入来自 MySQL 的数据
Solr 如何自动导入来自 MySQL 的数据
123 0
Solr 如何自动导入来自 MySQL 的数据