我正在使用VS2012,.NET 4.5和SolrNet。我正在努力解决solrnet映射问题。我在http://localhost:8983/solr
成功启动了带有码头的Apache Solr。我要添加到solr的课程是:
public class Register
{
[SolrUniqueKey("id")]
public string Id { get; set; }
[SolrField("body")]
public string Body { get; set; }
}
我成功连接到solr,但我无法将文档放入其中:
Startup.Init<Register>(solrAddress);
Solr = ServiceLocator.Current.GetInstance<ISolrOperations<Register>>();
var reg = new Register
{
Id = "SP2514N",
Body = @"Dosel je prosel"
};
Solr.Add(reg);
Solr.Commit();
这里我收到错误,'body'是未知字段。我也使用了MappingManager,如下所示:
var mgr = new MappingManager();
var property = typeof(Register).GetProperty("Id");
mgr.Add(property, "id");
mgr.SetUniqueKey(property);
mgr.Add(typeof(Register).GetProperty("Body"), "body");
但是,再一次,我的领域没有被映射。我究竟做错了什么?是不是应该通过代码完成到solr的映射?我需要一个特殊的xml文件吗?
答案 0 :(得分:2)
您需要确认您的架构中定义了body
字段。如果您只是使用Solr附带的默认架构,则它不包含body
字段。您可以复制schema.xml文件中的现有类似条目,例如description
,以便您继续。
有关配置Solr架构的更多参考,请参阅以下内容: