Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使用ajax在solr服务器中添加新文档_Jquery_Solr - Fatal编程技术网

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

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