如何使用ajax在solr服务器中添加新文档

时间:2012-10-26 12:31:33

标签: jquery solr

我正在尝试使用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

它没有显示数据。

请帮忙

2 个答案:

答案 0 :(得分:1)

  1. 可能需要一段时间才能更新solr存储库。看看你的提交策略,也许会尝试自己提交。

  2. 您是如何尝试添加的?使用卷曲?或使用一些浏览器?因为请求可能是更新或发布请求...

  3. 使用此:https://github.com/evolvingweb/ajax-solr

  4. &#34; - 数据二进制&#34;是一个卷曲标志,不应该在网址中,你应该将你的xml数据放在ajax请求的数据中,而不是在网址中:

  5.  $.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