Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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
C# 将对象作为xml发布到Solr_C#_Solr - Fatal编程技术网

C# 将对象作为xml发布到Solr

C# 将对象作为xml发布到Solr,c#,solr,C#,Solr,我是第一次与solr合作,在发布web请求将产品放入solr库时遇到了一些问题 这是我的代码: private static void PostProductToSolr(Product p) { string solrFieldsXML = "<add>" + "\n" + "<doc>" + "\n" + "<field name=\"id\">" +

我是第一次与solr合作,在发布web请求将产品放入solr库时遇到了一些问题

这是我的代码:

private static void PostProductToSolr(Product p)
{
    string solrFieldsXML =
            "<add>" + "\n" +
                "<doc>" + "\n" +
                    "<field name=\"id\">" + p.ID + "</field>" + "\n" +
                    "<field name=\"name_s\">" + p.Name + "</field>" + "\n" +
                    "<field name=\"title_s\">" + p.Title + "</field>" + "\n" +
                    "<field name=\"ShortDescription_txt\">" + p.ShortDescription + "</field>" + "\n" +
                    "<field name=\"LongDescription_txt\">" + p.LongDescription + "</field>" + "\n" +
                    "<field name=\"ShortSummaryDescription_txt\">" + p.ShortSummary + "</field>" + "\n" +
                    "<field name=\"LongSummaryDescription_txt\">" + p.LongSummary + "</field>" + "\n" +
                    "<field name=\"price_d\">" + p.Price + "</field>" + "\n" +
                    "<field name=\"category_s\">" + p.FkCategoryId + "</field>" + "\n" +
                "</doc>" + "\n" +
            "</add>";
    Post(solrFieldsXML);
    //File.WriteAllText(@"C:\Users\ssb\Documents\ProductXml\product_" + p.ID + ".xml", solrFieldsXML);
}

private static void Post(string body)
{
    string url = @"http://localhost:8983/solr/LenovoProducts/update";

    var request = (HttpWebRequest)WebRequest.Create(url);
    var data = Encoding.ASCII.GetBytes(body);

    request.Method = "POST";
    request.ContentType = "application/xml";
    request.ContentLength = data.Length;

    using (var stream = request.GetRequestStream())
    {
        stream.Write(data, 0, data.Length);
    }

    var response = (HttpWebResponse)request.GetResponse();
    var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
    Console.WriteLine(responseString);

}
private static void PostProductToSolr(产品p)
{
字符串solrFieldsXML=
"

编辑:它设法发布第一个产品,但仍然会在响应上抛出一个错误,如图所示,这会阻止程序发布下一个产品

这是我的solr日志:

请检查solr日志,他们可能会有更多描述错误的日志。我添加了一张日志图片,感谢您发送给solr的XML存在问题。请检查XML格式的有效性。这是否适用于所有产品?您不使用的原因是什么?它会自动为您执行此操作。您看到的错误可能是因为你没有正确地转义XML值的内容,而且在某个地方有一个
标记。使用一个库,你就不必担心如何正确地获取所有这些细节。我是Solr的第一次用户,正在试图弄清楚它是如何工作的。我不知道SolrNet,也不知道如何正确地使用它。