1

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

远程服务器返回错误:(400) Bad Request

我的代码是这样的。

在架构文件中

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();

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

提前致谢。
阿舒托什
9818842034

4

1 回答 1

2

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

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

于 2011-04-06T23:33:08.153 回答