我正在尝试使用ajax在solr服务器中添加新文档。
要在solr服务器中添加新文档,我们必须编写 http:// 192.168.10.113:8080/solr/update/?commit=true%20-H%20%22Content-Type:%20text/xml%22%20--data-binary%20%20%3Cadd%3E %3Cdoc%3E%3Cfield%20name = 'ID' %3E19990%3C /字段%3E%3C / DOC%3E%3C /添加%3E
实际代码: <添加>< DOC> <字段名称='id> 19990>< /场> < / DOC> < /添加>
现在我尝试在服务器中添加文档。
我的AJAX代码:
$.ajax({
url: "http://192.168.10.113:8080/solr/update/?commit=true%20-H%20%22Content-Type:%20text/xml%22%20--data-binary%20'<add><response><doc><field%20name='id'>19990</field></doc></response></add>'",
type: 'POST',
success: function (data) {
alert(data);
}
});
ajax调用未显示任何错误。
然后我尝试获取数据 像这样: http:// 192.168.10.113:8080/solr/select/?q=19990&version=2.2&start=0&rows=10&indent=on
它没有显示数据。
请帮忙
答案 0 :(得分:1)
可能需要一段时间才能更新solr存储库。看看你的提交策略,也许会尝试自己提交。
您是如何尝试添加的?使用卷曲?或使用一些浏览器?因为请求可能是更新或发布请求...
&#34; - 数据二进制&#34;是一个卷曲标志,不应该在网址中,你应该将你的xml数据放在ajax请求的数据中,而不是在网址中:
$.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'); } });
答案 1 :(得分:0)
根据Solr Wiki - Update XML Messages页面上显示的示例,您的添加代码格式似乎已关闭。它应该如下:
<add><doc><field name="id">19990</field></doc></add>
网址编码值:
%3Cadd%3E%3Cdoc%3E%3Cfield%20name%3D%22id%22%3E19990%3C%2Ffield%3E%3C%2Fdoc%3E%3C%2Fadd%3E
尝试一下,看看是否添加了文档。
此外,由于您使用的是Ajax,如果您的数据已经是JSON格式,您可能需要考虑发送JSON数据。有关详细信息,请参阅Solr Wiki - Update JSON。