Solr在admin界面使用(Solr Command (raw XML or JSON))提交多份documents的方法
2017-08-14 22:43
393 查看
Solr有时候需要一下导入很多个document,在solr的admin界面的Solr Command (raw XML or JSON)可以实现这一方式。但是我开始导入的时候发现submit没有报错,但是数据并没有add成功,后面发现有一个有地方需要特别注意。
当我们需要导入一个document时。在admin界面我们可以通过这样导入:
在下图一的地方选择“json”(因为我要导入的数据是json格式,还支持CVS、XML等格式),在2的位置放入要导入的document(只能添加一个document),点击submit就可以提交了。下面有三个框框可以修改的三个属性(commit within 、Overwrite、boost)。这个很重要,下面会讲到。
但很多时候我们需要导入的是大量的document,如果我们采用上面的方式肯定不行。
所以就有下面这种方式:在上图 1 的位置选Solr Command(rawXML orJSON)然后在2的位置可以导入多个document。仔细观察这两个图的不同。有没有发现在数字 2的下面有不同,第一个界面有三个属性可以选,第二个图没有了。所以这个就是提交多个document跟提交一个document不同的地方,也是特别需要注意的地方。
下面是json数据的组织方式:
{"add":{ "doc": YOUR_TEXT_AREA_INPUT,
"boost": BOOST_FORM_INPUT,
"overwrite": CHECKBOX_INPUT,
"commitWithin": COMMIT_WITHIN_FORM_INPUT }
{ "doc": YOUR_TEXT_AREA_INPUT,
"boost": BOOST_FORM_INPUT,
"overwrite": CHECKBOX_INPUT,
"commitWithin": COMMIT_WITHIN_FORM_INPUT }
{ "doc": YOUR_TEXT_AREA_INPUT,
"boost": BOOST_FORM_INPUT,
"overwrite": CHECKBOX_INPUT,
"commitWithin": COMMIT_WITHIN_FORM_INPUT }
}
doc : 需要插入的document
boost :权重(非必要,没设置系统默认值为1.0)
overwrite:是否覆盖旧document根据设置的uniqueKey和自动生成的_version_判断数据是否是最新的。
commitWithin :必须在指定的时间内提交完成,否则做提交超时处理,单位为毫秒。(必要!!!,这个很重要,一定要有,不然你会发现没有报错但是数据就是没有,没有add成功)
必须设置commitWithin,才可以add或者update成功,当然也有可以是我的solr的配置没设置对,但是目前的解决办法就是这个。
给出一个数据样例吧
{"add":{"doc":
{"unid":"1",
"name":"张三",
"school":"中南大学"
},
"overwrite":true,
"commitWithin":3000
},
"add":{"doc":
{ "unid":"2",
"name":"李三",
"school":"湖南大学"
},
"overwrite":true,
"commitWithin":3000
},
"add":{"doc":
{ "unid":"3",
"name":"李四",
"school":"湖南大学"
},
"overwrite":true,
"commitWithin":3000
}
}
当我们需要导入一个document时。在admin界面我们可以通过这样导入:
在下图一的地方选择“json”(因为我要导入的数据是json格式,还支持CVS、XML等格式),在2的位置放入要导入的document(只能添加一个document),点击submit就可以提交了。下面有三个框框可以修改的三个属性(commit within 、Overwrite、boost)。这个很重要,下面会讲到。
但很多时候我们需要导入的是大量的document,如果我们采用上面的方式肯定不行。
所以就有下面这种方式:在上图 1 的位置选Solr Command(rawXML orJSON)然后在2的位置可以导入多个document。仔细观察这两个图的不同。有没有发现在数字 2的下面有不同,第一个界面有三个属性可以选,第二个图没有了。所以这个就是提交多个document跟提交一个document不同的地方,也是特别需要注意的地方。
下面是json数据的组织方式:
{"add":{ "doc": YOUR_TEXT_AREA_INPUT,
"boost": BOOST_FORM_INPUT,
"overwrite": CHECKBOX_INPUT,
"commitWithin": COMMIT_WITHIN_FORM_INPUT }
{ "doc": YOUR_TEXT_AREA_INPUT,
"boost": BOOST_FORM_INPUT,
"overwrite": CHECKBOX_INPUT,
"commitWithin": COMMIT_WITHIN_FORM_INPUT }
{ "doc": YOUR_TEXT_AREA_INPUT,
"boost": BOOST_FORM_INPUT,
"overwrite": CHECKBOX_INPUT,
"commitWithin": COMMIT_WITHIN_FORM_INPUT }
}
doc : 需要插入的document
boost :权重(非必要,没设置系统默认值为1.0)
overwrite:是否覆盖旧document根据设置的uniqueKey和自动生成的_version_判断数据是否是最新的。
commitWithin :必须在指定的时间内提交完成,否则做提交超时处理,单位为毫秒。(必要!!!,这个很重要,一定要有,不然你会发现没有报错但是数据就是没有,没有add成功)
必须设置commitWithin,才可以add或者update成功,当然也有可以是我的solr的配置没设置对,但是目前的解决办法就是这个。
给出一个数据样例吧
{"add":{"doc":
{"unid":"1",
"name":"张三",
"school":"中南大学"
},
"overwrite":true,
"commitWithin":3000
},
"add":{"doc":
{ "unid":"2",
"name":"李三",
"school":"湖南大学"
},
"overwrite":true,
"commitWithin":3000
},
"add":{"doc":
{ "unid":"3",
"name":"李四",
"school":"湖南大学"
},
"overwrite":true,
"commitWithin":3000
}
}
相关文章推荐
- solr使用curl导入json数据以及admin页面删除索引数据
- 提交数据使用json代替xml
- XML转换JSON的工具使用方法
- SpringMvc返回报文形式的控制-验证方法: JSON or HTML or XML
- 一种使用Xml对Android界面进行动态布局的方法
- HTML5第8次课堂笔记( 模拟form表单提交数据,xml的解析,jQuery的Ajax方法使用, mui的ajax)
- 使用solr界面管理工具创建core 不能用的解决方法
- Struts2下使用ExtJs、Jquery等Ajax框架传递XML、JSON的方法
- httpClient 使用post方法提交json数据,接收返回数据实例
- 使用.NET存储XML数据的方法
- 利用FORM表单提交到WEBSERVICE后获得XML文档但不跳转的方法
- 使用Dojo实现页面不刷新提交数据时避免前台缓存的方法
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- c#使用webBrowser,控制页面、提交表单的两种方法
- AJAX,使用XMLHttpRequest接受客户端的提交,并发送响应
- ajax中,使用Json代替xml加快速度