使用solrnet和Tom.Mractices.ServiceLocation.dll使用solrNet在Tomcate windows xp上运行我收到错误远程服务器返回错误。(400)错误请求。
在此代码上添加内容时
solr.Add(new Article()
{
_id = 1,
_title = "My Laptop",
_content = "My laptop is portable power station",
_tags = new List<string>() {
"laptop","computer","device"
}
});
我正在使用以下代码......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SolrNet;
using SolrNet.Attributes;
using SolrNet.Commands.Parameters;
using Microsoft.Practices.ServiceLocation;
namespace solrIndex_creator
{
class Article
{
[SolrUniqueKey("id1")]
public int _id { get; set; }
[SolrField("title1")]
public string _title { get; set; }
[SolrField("content1")]
public string _content { get; set; }
[SolrField("tag1")]
public List<string> _tags { get; set; }
ISolrOperations<Article> solr;
public void _write_Data()
{
Startup.Init<Article>("http://localhost:8080/solr/");
solr = ServiceLocator.Current.GetInstance<ISolrOperations<Article>>();
solr.Add(new Article()
{
_id = 1,
_title = "My Laptop",
_content = "My laptop is portable power station",
_tags = new List<string>() {
"laptop","computer","device"
}
});
solr.Add(new Article()
{
_id = 2,
_title = "my iphone",
_content = "my iphone consumes power",
_tags = new List<string>() {
"phone",
"apple",
"device"
}
});
solr.Add(new Article()
{
_id = 3,
_title = "your blackberry",
_content = "your blackberry has an alt key",
_tags = new List<string>() {
"phone",
"rim",
"device"
}
});
solr.Commit();
}
答案 0 :(得分:2)
此错误可能与您的Solr schema.xml <fields>
设置和Article类不匹配有关。您应该能够调试程序并检查错误请求错误,以获取有关问题的更多详细信息。或者您可以检查Solr的服务器日志(在您的托管容器中,例如Jetty,Tomcat)以获取更多详细信息。
此外,我会将Article类上的Tags属性更改为SolrNet Mapping wiki上更通用的ICollection
,就像{{3}}上的multiValued示例一样。