第二章 solr数据导入

关于solr建立json 多层嵌套复杂数据的第一种方法 导语:最近在做一个有关于solr的项目,由于本人小白,所以从搭建solr服务开始,一步步边官网边百度慢慢研究。solr不支持普通的多层嵌套的json 格式,如果要solr 中存储json 格式。多层嵌套的就需要转换一下格式。 阅读详情

本章简介

由于solr本身提供的有页面方式数据提交,所以如果只是少量数据我们可以通过页面方式把json数据提交上去。同时我们也可以通过配置实现mysql数据库中把数据导入其中。

不管哪种方式导入数据都要依托一个数据core来进行各种操作,因此必须现有core然后才能进行后面的数据操作。

创建Core

1.solr页面方式创建core(很简单这里就不演示了)
2.控制台命令创建core

* 控制台通过命令solr create_core -help 可查看创建Core的帮助信息

* 创建一个名为s1的core,输入命令solr create -c s1 -d basic_configs 即可

solr create -c s1 -d basic_configs

d指定配置文件。创建的core在path\solr-5.3.0\server\solr 中可以找到,在solr的管理界面也可以找到。

数据的导入

1.solr页面json导入
2.mysql数据库中导入

solr管理页面方式导入json

json数据如下,以北京七天的天气数据为例

 {
                "fengxiang": "北风",
                "fengli": "5-6级",
                "high": "高温 24℃",
                "type": "晴",
                "low": "低温 11℃",
                "date": "3日星期六"
            },
            {
                "fengxiang": "北风",
                "fengli": "4-5级",
                "high": "高温 19℃",
                "type": "晴",
                "low": "低温 8℃",
                "date": "4日星期日"
            },
            {
                "fengxiang": "无持续风向",
                "fengli": "微风",
                "high": "高温 21℃",
                "type": "晴",
                "low": "低温 9℃",
                "date": "5日星期一"
            },
            {
                "fengxiang": "无持续风向",
                "fengli": "微风",
                "high": "高温 21℃",
                "type": "多云",
                "low": "低温 10℃",
                "date": "6日星期二"
            },
            {
                "fengxiang": "无持续风向",
                "fengli": "微风",
                "high": "高温 24℃",
                "type": "晴",
                "low": "低温 12℃",
                "date": "7日星期三"
            },
            {
                "fengxiang": "无持续风向",
                "fengli": "微风",
                "high": "高温 23℃",
                "type": "晴",
                "low": "低温 11℃",
                "date": "8日星期四"
            }
        ],
        "yesterday": {
            "fl": "微风",
            "fx": "无持续风向",
            "high": "高温 23℃",
            "type": "晴",
            "low": "低温 12℃",
            "date": "2日星期五"
  }

在左侧的下拉框选择new_core后会出现document菜单,点击它,右侧则会出现操作界面,我们复制一条数据为例,执行submit Document,可以看到右侧出现了success说明成功了
这里写图片描述

点击左侧菜单中Query在右侧点击Execute Query可以看到数据都查询出来了

mysql数据导入

配置文件

cd /home/laiding/ide/solr-6.3.0/server/solr

ls

configsets README.txt s1 sc solr.xml zoo.cfg

这里选择s1数据核为测试点

cd s1

ls

conf core.properties data

这便是一个数据核的重要三个部分:

2.1. mysql数据准备

SET FOREIGN_KEY_CHECKS=0;
-- Table structure for student

DROP TABLE IF EXISTS student;
CREATE TABLE student (
sid bigint(20) NOT NULL,
sname varchar(255) DEFAULT NULL,
sage int(11) DEFAULT NULL,
saddress varchar(255) DEFAULT NULL,
sdescript text,
PRIMARY KEY (sid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Records of student

INSERT INTO student VALUES ('1', '李四', '23', '中华路1号', '好学生');
INSERT INTO student VALUES ('2', '张三', '34', '华信路3号', '坏学生,经常做坏事!');

2.1 修改solrconfig.xml

进入配置文件夹:s1/conf 。

2.1.1 添加数据导入请求节点

在solrconfig.xml中添加如下代码:

在solrconfig.xml的 之上添加

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

如下图:在searchhandler注释下添加

2.1.2 配置相应的jar文件到lib中

solr-6.3.0\dist ,有两个:solr-dataimporthandler-extras-6.3.0.jar,solr-dataimporthandler-6.3.0.jar

同时我们也要把mysql 的驱动mysql-connector-java-5.1.26.jar放入该目录下

找到行

在其下面添加如下行

 <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-\d.*\.jar" />
 <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-extras-\d.*\.jar" />
 <lib dir="${solr.install.dir:../../../..}/dist/" regex="mysql-connector-java-\d.*\.jar" />

这样就可以用正则方式把我们需要的jar包导入进去,记得在使用之前需要重启solr服务

2.2 添加data-config.xml

在同目录下(s1/conf)添加文件data-config.xml,并配置数据库查询的链接如下

<dataConfig>  
 <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"    
   url="jdbc:mysql://localhost:8983/solr" 
   user="root"    
   password="root"/>  
   <document name="lhx">  
      <entity name="student" pk="sid" query="select sid,sname,sage,saddress,sdescript from student">    
          <field column="sid" name="id" />        
          <field column="sname" name="name" />        
          <field column="sage" name="age" />  
          <field column="saddress" name="address" />  
          <field column="sdescript" name="descript" />   
      </entity>  
 </document>   
</dataConfig>  

这个随便取名,其他根据文件名称取

name指表名,pk是主键名,query是查询SQL语句。

field标签解释:

  • column是列名,对应数据库中相关表中字段的名称

  • name就是solr这边对应的名称,该字段需要在schema.xml中配置好

字段都要一一映射

2.3 配置managed-schema的field信息

最后在conf文件下的managed-schema(6.0之前的版本是schema.xml)配置field信息

原文件如下

这里的field是系统自动生成的需要保留,主键必须有,所以这里依然使用系统默认的id,只要在上面提到的隐射标签中和表中的主键对应即可

系统自带的这个字段注释调,拷贝修改如下主键类型为int

    <field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="name" type="string" indexed="true"  stored="true"  multiValued="false" />   
    <field name="age" type="int" indexed="true"  stored="true" multiValued="false" />   
    <field name="address" type="string" indexed="true"  stored="true" multiValued="false" />  
    <field name="descript" type="string" indexed="true" stored="true" multiValued="false" />    

    <!-- doc values are enabled by default for primitive types such as long so we don't index the version field  -->
    <field name="_version_" type="long" indexed="false" stored="false"/>
    <field name="_root_" type="string" indexed="true" stored="false" docValues="false" />
    <field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>

3 系统重启并导入数据

solr restart -p 8983 // 重启必须指定端口号

  1. 如下图步骤导入数据:
    数据说明:第四步骤这里应该是student,由于我做了两次测试,这里的图是第一次使用tomcat启动截的图,所以在这里下拉选择你在dataconfig中的entity标签name属性名对应的名称即可。

  2. 执行完成,点击刷新如下:

  3. 查询

q里面的参数是我们要查询的字段名称用:分割

执行查询后,右边就会出现查询的结果

非本次测试使用的数据步骤截图,按上文配置文件截图结果请参看图2

上面配置文件截图结果图,步骤和上图相同,查询结果如下

参考文档

Solr部署配置(四)批量导入数据 一、solr自带导入插件DataImporte设置 1、在solrconfig.xml文件中添加如下内容,引入DataImport功能,并设置配置文件位置。 D:\dev\test\solr-tomcat\solr\db\conf\db-data-config.xml 2、将jdbc的jar包和solr包中的DataImport的jar 阅读详情

相关推荐

Solr 数据导入调度器插件详解及实战

本文还有配套的精品资源,点击获取 简介:Solr DataImport Scheduler 插件是 Apache Solr 的扩展,可自动执行数据导入过程。本教程将详细介绍插件的工作原理、安装步骤以及在不同 Solr 版本中的使用。通过实践任务,你将学习如何配置数据源、查询、转换和加载过程,以及设置定时任务以实现自动数据导入。本教程涵盖 Solr 7.4 版本,并提供与 S...

weixin_30481539的博客 1265

配置Solr后台管理界面的数据导入(从MySQL中导入)

1.未配置之前  2.配置步骤: 1.在该目录下创建lib文件夹,经MySQL驱动包拷贝至此 再将以下目录下的两个jar包拷贝到lib文件夹 2.打开以下目录中的文件 在任意位置配置以下代码: &lt;!--配置导入--&gt;   &lt;requestHandler name="/dataimport" class="org.apache.solr.handler...

A_jungle的博客 696

Solr 数据导入调度器 JAR 包:自动化数据导入

本文还有配套的精品资源,点击获取 简介:Solr 数据导入调度器是一个插件,允许用户定期自动执行数据导入过程。本讨论将深入探讨该插件的工作原理、安装步骤以及如何在不同版本的 Solr 中使用。通过使用 Solr DataImport Handler 和 Scheduler,用户可以配置数据源、查询、转换和加载过程,并设置定时任务以自动运行数据导入,从而简化和自动化索引更新流...

weixin_42465140的博客 1088

solr 添加数据

cd /home/pubsrv/solr/customer_user/conf vim solrconfig.xml**在<admin>上面添加**<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> &l...

weixin_33804990的博客 603

solr自动导入数据jar

实现从数据库到solr的全量数据导入及增量数据导入jar包

跟益达学Solr5之批量索引JSON数据

NULL 博文链接:https://iamyida.iteye.com/blog/2215711

(三) solr 索引数据导入:json格式

如果我们有一个基于JavaScript的应用需要使用solr,此时再使用xml的格式可能就是一个很好的选择,因为它太大而且还需要转换。因此可以采用json,进行相应的处理。 下面就是具体的实现方式: schema.xml的部分配置如下: &lt;field name="id" type="string" stored="true" indexed="true"/&gt; &lt;fie...

weixin_34120274的博客 298

从IMU到机器人定位:手把手教你用ESKF(Error-State Kalman Filter)搞定传感器融合

本文详细介绍了如何使用ESKF(Error-State Kalman Filter)实现IMU与多传感器的融合,解决机器人定位中的积分漂移问题。通过代码示例和Gazebo仿真案例,展示了ESKF在自动驾驶和移动机器人中的核心应用,包括误差状态建模、预测过程实现和观测更新策略,帮助开发者掌握这一高效滤波技术。

weixin_33275503的博客 278

CentOS7上导出solr数据到json文件中 及 solr如何添加、删除、查询数据

一 Centos7 上导出solr数据到json文件中 开发需要,solr的数据需要导出来,放到另一套架构中,那么怎么将solr数据导出,放入json文件中?   导出solr数据,我们需要借助github上的一个maven项目。 1 安装工具: [root@solr1 local]# git clone https://github.com/freedev/solr-import-e...

wudinaniya的博客 2264

用AI从0开始量化交易-制定学习计划安装学习环境

量化小白,利用AI从零开始学量化

weixin_52285994的博客 2112

葵花 Himawari 8/9号数据学习记录-01-数据初识

葵花卫星学习记录,第一章:卫星的来源与卫星数据的波段介绍

weixin_44111909的博客 532

solr运行配置与数据库数据导入到solr

一,运行 1,solr运行容器,tomcat          2,拷贝apache-solr-3.6.0.war到tomcat的webapps目录下,并改名为solr.war         3,tomcat的conf目录下建立结构为conf/Catalina/localhost的两个文件夹。建立结构为solr-tomcat/solr的两个文件夹(solr的HOME目录),如建在D盘根目录

lfy9608110935的专栏 8430

UG NX二次开发(C++)-NX2406系列二次开发编程模板配置

前面已经写了有关UG NX二次开发编程模板配置的文章,但是由于NX2406/2412系列的版本中,在UGOpen文件夹中没有了vs_files文件夹了,而是采用了VSIX Project的方式配置(其适用于VS2019),在VS2022中不能正确的配置。我结合以前配置模板的经验和现在的配置方式讲一下NX2406系列二次开发编程模板的配置。我把相应的编程模板放在资源文件UG NX二次开发编程模板(基于NX2406版本制作)中,方便大家下载使用。

GimiGimmy 2640

solr导入数据

solr数据导入,经过这几天的查资料,我觉得solr数据倒数ke

裴珏的专栏 1483

AIGC游戏本地化:用AI实现多语言自动翻译

游戏本地化是游戏全球化战略的关键环节,传统人工翻译方式成本高、周期长。本文旨在探讨如何利用AIGC技术实现高效、准确、低成本的游戏多语言自动翻译解决方案。我们将覆盖从文本翻译到语音合成的完整本地化流程,重点关注AI技术在游戏特定语境下的应用优化。文章首先介绍游戏本地化的核心挑战和AI解决方案,然后深入讲解关键技术原理,接着通过实战项目演示具体实现,最后讨论应用场景和未来趋势。AIGC:人工智能生成内容,指利用AI技术自动生成文本、图像、音频等内容本地化(Localization)

AI 领航者的博客 1336

C#构建高精度预测模型:从数据预处理到模型部署的实战指南

【代码】C#构建高精度预测模型:从数据预处理到模型部署的实战指南。

墨夶的博客 1260

solr数据导入

目的:将数据库中的数据导入到solr索引库中,可以全量导入也可以增量导入 1.在solr_home/core_shop_product/conf目录下的solrconfig.xml中做如下配置如图1:                                                                     (图1)

qq_33157666的博客 858

yolov8 PTQ和QAT量化实战(源码详解)

量化():是指将高精度浮点数(FP32)转换为低精度(8bit或4bit)整数的过程,它是模型部署中的一种非常重要的优化方法,可以在较少的精度损失下,大幅提供神经网络的效率和性能。目前主流的神经网络量化方式有PTQ和QATPTQ是训练后量化(),无需数据集和训练,直接量化模型权重QAT是量化感知训练(),量化后需要在数据集上继续微调训练。QAT过程中,我们首先需要选择哪些层需要进行finetune训练,并利用FP32对应层的输出作为监督进行训练。

@bangbang的博客 5326

solr初始数据导入插件

从solr-4.10.3\dist目录下拷贝solr-dataimporthandler-4.10.3.jar,复制到以下目录: 修改solrconfig.xml如下: l数据库驱动包 把mysql数据库驱动包,拷贝到以下目录: 修改schema.xml,如下: 1.1.2第二步:配置solrconfig.xml,添加一个requestHandler <requestHan...

年轻就是资本的专栏 826

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

solr进阶三:从数据库中导入数据到solr

要建立自己的全文检索,一般都需要从数据库导入数据,在原来配置的基础上,增加导入的功能,这里以mysql为例子: 在solr的工作目录中选择一个core,我这里选择core1。进入配置文件夹:solr_tomcat\solr\core1\conf 。在solrconfig.xml中添加如下代码: data-config.xml 在同

小新新的专栏 6657

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

solr8的导入数据

前言 只导入数据之前,我这里默认你现在有new_core这个文件了。 第一步 先将import的jar复制到new_core的lib下面(没有lib文件夹就创建一个),如图 solr下的dist文件夹----->solrhome下的new_core下的lib,这里还需要一个mysql的驱动包也复制到lib下。 第二步 找到solrhome下的new_core下的con...

coderchem的博客 1915

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

导入Solr默认的示例数据

在Solr的下载包中,包含了很多示例数据(主要是.xml为扩展名的文件),我们也可以使用相关的命令,将这些示例数据导入到Solr实例中。   1.  进入Solr下载包主目录下的exampledocs目录,并执行相关命令   注意:-D参数是输入Solr实例的URL。   post.jar是一个简单的程序,会遍历所有的参数(这里就是*.xml),然后对本机正运行的Solr(exam

天涯人 3106

solr的安装与数据库导入数据到solr

1.安装软件包 solr8.2版本链接 8.7以后已经不支持数据库导入数据 2.下载并解压 3.安装前提;首先你需要安装jdk 最好是1.8版本及以上,并且环境变量 必须有JAVA_HOME ,自行下载 数据库连接架包: mysql-connector-java-8.0.13.jar 4.进入bin目录 输入cmd 进入命令窗口界面 5.启动solr 执行 solr start 命令 出现下面界面 默认端口号8983;指定端口可以使用 solr start -p 端口号 关闭是

qq_45068048的博客 754

Solr从数据库数据导入配置

Solr从数据库数据导入配置 前言   先假设一个场景,有一个类似问答的论坛,存有许多的帖子,每个帖子都有问题标题,问题内容,提问人等信息。问题信息存在数据库中,那么计划使用Solr来开发论坛的搜索功能,因此需要为数据库表的数据再Solr中建立索引。 主要步骤 1.创建项目对应的core 2.根据要建立索引的数据库数据字段在managed-schema创建Field,指定Field Typ...

莫负时光 1206

批量导入数据到solr中

创建配置文件,配置solr模板和solr服务器地址 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="ht

XuYuanChong的博客 975
上一篇: 第一章 solr搭建
下一篇: 第三章solrj客户端使用demo
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值