Solr 中 core 创建后的数据导入

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
Java 数据库连接 数据库
探究Java中的MyBatis Plus注解 @TableField:灵活处理字段映射与自动填充
在数据库操作中,字段映射和字段填充是开发者经常需要处理的问题。MyBatis Plus作为一款优秀的ORM框架,提供了注解 `@TableField`,能够帮助开发者更加灵活地处理字段映射,以及在特定场景下实现自动填充功能。本文将深入探讨 `@TableField` 注解的用法及其在持久层开发中的应用。
5521 1
|
负载均衡 Cloud Native Java
|
12月前
|
关系型数据库 MySQL Linux
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
在Linux系统中使用tar.xz压缩包安装MySQL数据库的详细步骤。包括下载MySQL压缩包,解压到指定目录,创建mysql用户和组,设置目录权限,初始化MySQL,配置my.cnf文件,启动服务,以及修改root用户密码。此外,还提供了如何设置Windows远程登录MySQL服务器的方法。
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
|
人工智能 中间件 算法框架/工具
Python在工业自动化领域的应用详解
Python在工业自动化领域的应用详解
215 2
|
前端开发 JavaScript UED
element-ui 表格数据究竟隐藏着怎样的神秘样式与格式化技巧?快来揭开谜底!
【8月更文挑战第22天】《element-ui 表格数据样式及格式化案例》展示了如何利用 element-ui 的表格组件实现美观且易读的数据展示。通过简单配置,可以自定义表格样式,如边框、背景色等,并通过 formatter 实现数据格式化,例如将成绩保留一位小数。此外,还能依据条件设置行样式,如成绩达优则高亮显示,从而增强用户体验和数据可读性。
236 1
|
Java Maven
idea安装并使用maven依赖分析插件:Maven Helper
idea安装并使用maven依赖分析插件:Maven Helper
4075 7
|
数据采集 存储 编解码
使用Arcgis pro做流域分析(河网+集水区)
【8月更文挑战第10天】使用ArcGIS Pro进行流域分析包括河网与集水区提取。首先准备DEM及河流数据,然后在软件中加载。若无河网数据,可用“Fill”填洼、“Flow Direction”计算流向、“Flow Accumulation”计算累积量,并通过“Stream Definition”定义河流。集水区分析则使用“Watershed”工具确定特定点的流域范围。最后,通过符号化展示结果,并结合其他数据深入分析流域特性。注意数据质量与参数选择以保证分析准确性。
1539 1
|
机器学习/深度学习 存储 人工智能
【AI】告别繁琐阅读,阿里通义智文阅读助手带您轻松畅游知识海洋!
阿里通义智文阅读助手是AI驱动的阅读辅助工具,能识别并解析PPT、图片、PDF等文档,提供摘要、关键词提取、语义理解与问答功能。用户可上传图片文件,工具自动识别文字,支持图表识别和全文搜索。此外,它还具有智能问答功能,能回答用户关于文档内容的问题。工具兼容多种文件格式,但有每日使用和存储限制。作者木头左邀请用户体验并期待下次分享。
【AI】告别繁琐阅读,阿里通义智文阅读助手带您轻松畅游知识海洋!
|
运维 小程序 前端开发
小程序开发问题之在小程序中调用my.chooseImage接口让用户选择图片如何解决
小程序开发问题之在小程序中调用my.chooseImage接口让用户选择图片如何解决
|
Java 编译器 Spring
面试突击78:@Autowired 和 @Resource 有什么区别?
面试突击78:@Autowired 和 @Resource 有什么区别?
15006 5

热门文章

最新文章