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

查詢一下岳雲鵬

