solr使用curl导入json数据以及admin页面删除索引数据

来源:互联网 发布:南风知我意七微 编辑:程序博客网 时间:2024/06/08 02:50
通过dos执行curl导入json数据
1.下载解压好curl工具,可以将其加入到系统变量中;
2.在doc命令下进入curl的安装目录下的src中能看到curl.exe命令
3.在此目录下执行:
curl "http://192.168.10.165:8081/solr/json/update?commit=true" --data-binary @json文件地址 -H "Content-type:application/json",执行成功后如下图:

如果执行失败会有错误提示:

json的大致文件内容结构:
{“add”:{"doc":{"id":"001","name":"张三","hobby":["吃","喝","玩"]}"doc":{
"id":"002","name":"李四","hobby":["吃","喝","玩"]}"doc":{"id":"003","name":"王五","hobby":["吃","喝","玩"]}}}
对于单值字段与多值字段可以很好的支持,对于类似下面这种属性组:
"comments": [{ "text": "我是谁",}, { "text": "我在哪",} ] 
在json文件中不能直接这么写,solr识别不了,需要改为如下形式:
“comments.0.text”:"我是谁",
“comments.0.text”:"物我在哪"

通过java程序调用curl命令导入json文件到solr索引库:
public static boolean impData(String path){String url = "\"http://192.168.10.165:8081/solr/json/update?commit=true\" --data-binary @"+path+" -H \"Content-type:application/json;charset=UTF-8\"";String[] cmds = {"curl",url};ProcessBuilder pb = new ProcessBuilder(cmds);pb.redirectErrorStream(true);Process p; try { p = pb.start();BufferedReader br = null;br = new BufferedReader(new InputStreamReader(p.getInputStream()));br.close();} catch (IOException e) {e.printStackTrace();} return true;}
其中path为json文件的绝对地址,json文件的格式与上面的一致,自己可以加一些输出语句判断导入数据的条数、所消耗时间等信息。
solr admin 删除索引示例:


根据id删除索引:
<delete><query>id:1</query></delete>
<commit/>
删除所有索引:
<delete><query>*:*</query></delete>
<commit/>
删除成功状态:


原创粉丝点击