【问题标题】:How to add new document in the solr server using ajax如何使用 ajax 在 solr 服务器中添加新文档
【发布时间】:2012-10-26 12:31:33
【问题描述】:

我正在尝试使用 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/field%3E%3C/doc%3E%3C/add%3E

实际代码:

ajax 调用没有显示任何错误。

然后我尝试获取数据 像这样: http://192.168.10.113:8080/solr/select/?q=19990&version=2.2&start=0&rows=10&indent=on

它没有显示该数据。

请帮忙

【问题讨论】:

    标签: jquery solr


    【解决方案1】:
    1. 更新 solr 存储库可能需要一些时间。看看你的提交策略,也许尝试自己提交。

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

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

    4. “--data-binary”是一个 curl 标志,不应该在 url 中,您应该将 xml 数据放在 ajax 请求的数据中,而不是在 url 中:

     $.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');
            }
        });
    

    【讨论】:

    • 抱歉,我不知道如何向服务器添加新数据。我在 Google 上搜索并获得了该查询。我的 Ajax 代码是 $.ajax({ url: "192.168.10.113:8080/solr/update/…>'", type: 'POST', success: function (data) { alert(data); } });
    • 请在原始问题中添加代码,以便我们阅读。
    • 你能解释一下你为什么这样写吗?什么是 xml:escape("19990")???对不起,因为我是 solr 的新手,所以我对此一无所知。我写的链接你给了解决方案,它显示 FAILED 警报消息。
    • 这不是 solr 的问题,问题出在 jquery 上,看看这里:api.jquery.com/jQuery.post。再想一想-我不确定你是否需要转义部分,它可能会作为一个普通的字符串。
    • 我想发送 json 对象而不是 XML 。如何做到这一点。
    【解决方案2】:

    根据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

    【讨论】:

    • 对不起,我在问题中提到错误。其实我添加了你写的xml。它没有显示任何结果。
    • 您能否为您的实际 ajax 调用添加代码以将文档添加到问题中。您是否还检查了 Solr 托管容器的日志以确保没有任何错误?
    • 我的 Ajax 调用代码:$.ajax({ url: "192.168.10.113:8080/solr/update/…>'", type: 'POST', success: function (data) { alert(data); } });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    相关资源
    最近更新 更多