从solr获取数据时,我遇到了错误

时间:2012-10-08 14:29:13

标签: c# solr solrnet

从solr获取数据时,我遇到错误打击

已添加具有相同键的项

    public  static void Solryeg()
    {
        ISolrOperations<SolrContent> solr = ServiceLocator.Current
                                  .GetInstance<ISolrOperations<SolrContent>>();

        var q = solr.Query(SolrQuery.All);
    }

SolrContent.cs

public class SolrContent
{
    [SolrUniqueKey("ContentId")]
    public int ContentId { get; set; }


    [SolrField("ContentName")]
    public string ContentName { get; set; }

    [SolrField("ContentTitle")]
    public string ContentTitle { get; set; }

    [SolrField("ContentIsActive")]
    public bool ContentIsActive { get; set; }

    [SolrField("ContentRatingEnabled")]
    public bool ContentRatingEnabled { get; set; }

   ...

1 个答案:

答案 0 :(得分:1)

在SolrContent.cs类中,您已将SolrUniqueKey属性添加到ContentId属性,该属性映射到架构中的ContentId字段。因此,这表明Solr索引中的ContentId字段将始终包含唯一值。但是,您的索引当前具有多个具有相同ContentId值的项目。有几种方法可以解决这个错误。

  1. 将ContentId属性的属性更改为[SolrField("ContentId")]
  2. 修复索引,以便ContentId字段仅包含唯一值。
  3. 我建议你选择第二个选项,因为这将遵循你想要达到的目的的真实意图。但是,您可以尝试第一个只是为了验证您可以在没有错误的情况下查询Solr索引,然后弄清楚索引如何具有相同ContentId的多个项目以及该问题的修复。