我想用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
答案 0 :(得分:2)
SolrNet支持将字典映射到动态字段。在这种情况下,[SolrField]
的参数是字段名称的前缀。这在SolrNet wiki。
如果要使用多值字段而不是动态字段来存储字典,可以通过实现ISolrDocumentPropertyVisitor
来实现。不过,这样做并非易事,而且我认为无论如何这都不是一个好主意。