Solr学习笔记——导入JSON数据

1.导入JSON数据的方式有两种,一种是在web管理界面中导入,另一种是使用curl命令来导入

curl http://localhost:8983/solr/baikeperson/update/json?commit=true --data-binary @/home/XXX/下载/person/test1.json -H ‘Content-type:text/json; charset=utf-8‘

2.导入的时候注意格式

使用curl可以导入的格式

{
  "add": {
    "overwrite": true,
    "doc": {      "id": 1,
      "name": "Some book",
      "author": ["John", "Marry"]
    }
  },
  "add": {
    "overwrite": true,
    "boost": 2.5,
    "doc": {
      "id": 2,
      "name": "Important Book",
      "author": ["Harry", "Jane"]
    }
  },
  "add": {
    "overwrite": true,
    "doc": {
      "id": 3,
      "name": "Some other book",
      "author": "Marry"
    }
  }
}

在web界面中可以导入的格式

{"title":"许宝江","url":"7254863","chineseName":"许宝江","sex":"男","occupation":" 滦县农业局局长","nationality":"中国"}

不可以导入的格式

{"title":"鲍志成","url":"2074015","chineseName":"鲍志成","occupation":"医师","nationality":"中国","birthDate":"1901年","deathDate":"1973年","graduatedFrom":"香港大学"}
{"title":"许宝江","url":"7254863","chineseName":"许宝江","sex":"男","occupation":" 滦县农业局局长","nationality":"中国"}

格式转换的Scala代码

import java.io.{File, PrintWriter}
import scala.io.Source

/**
  * Created by common on 17-5-10.
  */
object SplitJson {

  def main(args: Array[String]): Unit = {

    val inputPath = "/home/common/下载/person/part-r-00000-47c2fce6-87cb-4a33-af2c-309a621b070f.json"

    val outputPath = "/home/common/下载/person/split.json"
    val pw = new PrintWriter(new File(outputPath))

    val s = Source.fromFile(new File(inputPath)).getLines()
    pw.append("{\"add\": {\"overwrite\": true,\"doc\":")
    s.foreach { x =>
      if (s.hasNext) pw.append(s"$x").write("},\"add\": {\"overwrite\": true,\"doc\": \n")
      else pw.append(s"$x").write("}}\n")
    }
    pw.flush
    pw.close
  }

}

导入成功将会返回,导入之后需要等上一段时间才会生成索引

{"responseHeader":{"status":0,"QTime":86}}

注意有可能还需要在下面的地址中加上

/var/solr/data/baikeperson/conf
<requestHandler name="/update/json" class="solr.JsonUpdateRequestHandler" />

导入了28W条人物百科数据

查询一下岳云鹏

时间: 2024-11-05 14:48:28

Solr学习笔记——导入JSON数据的相关文章

springmvc学习笔记(18)-json数据交互

springmvc学习笔记(18)-json数据交互 springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 添加json转换的依赖 配置json转换器 json交互测试 输入json串输出是json串 输入keyvalue输出是json串 本文主要介绍如何在springmvc中进行json数据的交互,先是环境准备和配置,然后分别展示了"输入json串,输出是json串"和"输入key/value,输出是json串"两种情况下

学习笔记:Oracle 12C 数据非常规恢复工具bbed的使用说明

ORACLE 12C 依然支持 bbed,ORACLE 12C的测试版出来了,对于习惯了使用bbed(ORACLE 手术刀)的人来说,12C是否继续被支持是一个很让人关注的问题,通过本实验测试,12C继续支持bbed,很多艰难的数据库恢复依然可以通过bbed来实现,也从侧面说明,ORACLE 12C在块的结构上还依然和以往版本相似 数据库信息 [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.0.2 Beta

MySQL学习笔记之五 有关数据表操作

MySQL在创建表的时候,创建一个.frm文件保存表和列定义.索引存储在一个有.MYI(MYindex)扩展名的文件并且数据存储在有.MYD(MYData)扩展名的文件中.   一.用SHOW/ DESCRIBE语句显示数据表的信息 语法: SHOW TABLES [FROM db_name] [LIKE wild] or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild] or SHOW INDEX FROM tbl_name [FROM

iOS 学习笔记——0005(数据存储)

先发一个练手的小demo,自己写的简略通讯录,已上传至github https://github.com/liaoshaolim/addressBook 1.NSKeyedArchiver:(归档) 这里用一个添加联系人的例子来说明: 注意:归档形式保存数据,需要该对象遵守NSCoding协议,而且对应的必须提供encodeWithCoder和initWithCoder方法 因为归档是一次性的,解压也是一次性的,所以小量的ok,如果量大的话,改一个小地方就要归档或解压全部,效率会比较低 //用一

Python学习笔记_Chapter 4数据保存到文件

1. What For 将基于内存的数据存储到磁盘上,达到持续存储. 2. HOW 方法一: 将数据写到文件中 常规的处理方式 1 #file.x被打开的文件,model打开文件的方式 2 out=open('file.x','model') 3 #print将item写入到file指示的文件中,item可以是字符串或列表等 4 print(item,file=out) 5 #close是必须的,起到刷新输出的作用 6 out.close() open('file','model')中model

Elasticsearch学习笔记——安装和数据导入

到elasticsearch网站下载最新版本的elasticsearch 6.2.1 https://www.elastic.co/downloads/elasticsearch 下载tar包,然后解压到/usr/local目录下,修改一下用户和组之后可以使用非root用户启动,启动命令 ./bin/elasticsearch 然后访问http://127.0.0.1:9200/ 接下来导入json格式的数据,数据内容如下 {"index":{"_id":"

Android学习笔记之Json的使用....

PS:当你的能力还驾驭不了你的目标时,那你需要沉下心来历练... 学习内容: 1.Json的使用... 2.Json信息过滤... 3.从网络上获取Json数据... 4.解析Json数据获取各个属性...   使用Json首先需要下载官方提供的一些jar文件...引用内部提供好的接口...才能够实现Json数据的获取....一共需要六个jar包...我已经进行了上传...大家可以直接下载... jar下载地址:http://files.cnblogs.com/files/RGogoing/js

Spark学习笔记4:数据读取与保存

Spark对很多种文件格式的读取和保存方式都很简单.Spark会根据文件扩展名选择对应的处理方式. Spark支持的一些常见文件格式如下: 1.文本文件 使用文件路径作为参数调用SparkContext中的textFile()函数,就可以读取一个文本文件.也可以指定minPartitions控制分区数.传递目录作为参数,会把目录中的各部分都读取到RDD中.例如: val input = sc.textFile("E:\\share\\new\\chapter5") input.fore

easyUI-combobox 后台导入Json数据的方法

一.前台页面: <input id="List" class="easyui-combobox" data-options="valueField:'ID',textField:'NAME'" style="width: 170px;height:25px;"/> 二.JS代码: $.ajax({ url:baseCtx+"/actions/getListInfo.action",//获取数据库