Jquery 如何使用ajax在solr服务器中添加新文档
我正在尝试使用ajax在solr服务器中添加新文档 要在solr服务器中添加新文档,我们必须编写 http://192.168.10.113:8080/solr/update/?commit=true%20-H%20%22内容类型:%20text/xml%22%20--数据二进制文件%20%20%3Cadd%3E%3Cdoc%3E%3Cfield%20name='id'%3E19990%3C/字段%3E%3C/doc%3E%3C/add%3E 实际代码:Jquery 如何使用ajax在solr服务器中添加新文档,jquery,solr,Jquery,Solr,我正在尝试使用ajax在solr服务器中添加新文档 要在solr服务器中添加新文档,我们必须编写 http://192.168.10.113:8080/solr/update/?commit=true%20-H%20%22内容类型:%20text/xml%22%20--数据二进制文件%20%20%3Cadd%3E%3Cdoc%3E%3Cfield%20name='id'%3E19990%3C/字段%3E%3C/doc%3E%3C/add%3E 实际代码:
$.ajax({
url:“http://192.168.10.113:8080/solr/update/?commit=true%20-H%20%22内容类型:%20text/xml%22%20--数据二进制文件%20'19990',
键入:“POST”,
成功:功能(数据){
警报(数据);
}
});
ajax调用没有显示任何错误
然后我尝试获取数据
这样地:
http://192.168.10.113:8080/solr/select/?q=19990&version=2.2&start=0&rows=10&indent=on
它没有显示这些数据
请帮助根据页面上显示的示例,添加代码的格式设置似乎已关闭。它应该是以下内容:
<add><doc><field name="id">19990</field></doc></add>
了解更多详细信息
可能需要一段时间才能更新solr存储库。看看你的承诺策略,也许试着自己去承诺
你是如何尝试添加它的?使用卷曲?或者使用一些浏览器?原因请求可能是更新或post请求
使用以下命令:
“--data binary”是一个curl标志,不应该出现在url中,您应该将xml数据放在ajax请求的数据中,而不是放在url中:
$.ajax({
类型:“POST”,
url:“http://192.168.10.113:8080/solr/update/?commit=true",
数据:{xml:escape(“19990”)},
数据类型:“text/xml”,
成功:功能(msg){
警惕(“成功”);
},
错误:函数(msg){
警报(“失败”);
}
});
对不起,我在问题中提错了。实际上,我添加了您编写的xml。它没有显示任何结果。您可以为实际的ajax调用添加代码,以便将文档添加到问题中吗。您还检查了Solr宿主容器的日志以确保没有任何错误吗?我的Ajax调用代码:$.Ajax({url:“>”,键入:'POST',成功:函数(数据){alert(数据);});对不起,我不知道如何向服务器添加新数据。我在谷歌上搜索并得到了那个查询。我的Ajax代码是$.Ajax({url:“>”,键入:'POST',success:function(data){alert(data);});请在原始问题中添加您的代码,以便我们阅读。您能解释一下为什么这样写吗??什么是xml:escape(“19990”)???对不起,我是新来solr的,对此我一无所知。我写的链接是您提供的解决方案,它显示的是失败的警报消息。solr没有问题,问题是jquery,请看这里:。再想想——我不确定您是否需要转义部分,它可能作为常规字符串工作。我想发送json对象,而不是XML。如何做到这一点。
$.ajax({
type : "POST",
url : "http://192.168.10.113:8080/solr/update/?commit=true",
data : { xml: escape("<add><response><doc><field name=id>19990</field></doc></response></add>") },
dataType : "text/xml",
success : function(msg){
alert('Success ');
},
error : function(msg) {
alert('Failed');
}
});