Solrnet无法映射工作

时间:2013-10-04 14:52:32

标签: solr solrnet

我正在使用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文件吗?

1 个答案:

答案 0 :(得分:2)

您需要确认您的架构中定义了body字段。如果您只是使用Solr附带的默认架构,则它不包含body字段。您可以复制schema.xml文件中的现有类似条目,例如description,以便您继续。

有关配置Solr架构的更多参考,请参阅以下内容: