从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; }
...
答案 0 :(得分:1)
在SolrContent.cs类中,您已将SolrUniqueKey
属性添加到ContentId
属性,该属性映射到架构中的ContentId字段。因此,这表明Solr索引中的ContentId字段将始终包含唯一值。但是,您的索引当前具有多个具有相同ContentId值的项目。有几种方法可以解决这个错误。
[SolrField("ContentId")]
我建议你选择第二个选项,因为这将遵循你想要达到的目的的真实意图。但是,您可以尝试第一个只是为了验证您可以在没有错误的情况下查询Solr索引,然后弄清楚索引如何具有相同ContentId的多个项目以及该问题的修复。