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條人物百科數據

 查詢一下岳雲鵬


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM