0

我正在使用 VS2012、.NET 4.5 和 SolrNet。我正在为 solrnet 映射而苦苦挣扎。我已经成功地使用 jetty on 启动了 Apache Solr http://localhost:8983/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 文件吗?

4

1 回答 1

2

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

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

于 2013-10-04T15:12:34.620 回答