如何在SolrNet中添加字典<string,string>数据</string,string>

时间:2011-04-06 12:52:47

标签: solrnet

我想用Solr.net添加记录我收到错误。

远程服务器返回错误:(400)错误请求

我的代码是这样的。

在架构文件中

field name="id" type="int" indexed="true" stored="true" required="true" /><br>
field name="Tags" type="string" indexed="true" stored="true" multiValued="true"/>

在我班上

public class ProductTest2
{
  [SolrUniqueKey("id")]
  public int Id { get; set; }
[SolrField("Tags")]
public Dictionary<string, string> Tags { get; set; }
}

我想添加新行的代码

solr.Add(new ProductTest2()
{
  Id = i,
  Tags = new Dictionary<string, string> { { Convert.ToString(dt.Rows[i]["Filter1_ID"]), Convert.ToString(dt.Rows[i]["Filter1"]) } }
}
solr.Commit();

当我执行此代码时,显示错误。但如果我删除字典类型并添加另一种类型然后工作正常。请建议我应该为Dictionary提供什么类型。 目前我使用了type="string"

先谢谢。
Ashutosh说
9818842034

1 个答案:

答案 0 :(得分:2)

SolrNet支持将字典映射到动态字段。在这种情况下,[SolrField]的参数是字段名称的前缀。这在SolrNet wiki

中有更详细的解释

如果要使用多值字段而不是动态字段来存储字典,可以通过实现ISolrDocumentPropertyVisitor来实现。不过,这样做并非易事,而且我认为无论如何这都不是一个好主意。