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は、辞書の動的フィールドへのマッピングをサポートしています。この場合、のパラメータは[SolrField]フィールド名のプレフィックスです。これについては、 SolrNetwikiで詳しく説明されています。

動的フィールドの代わりに複数値フィールドを使用して辞書を格納する場合は、を実装することで可能になる場合がありますISolrDocumentPropertyVisitor。しかし、そうすることは簡単ではなく、とにかくそれは良い考えではないと思います。

于 2011-04-06T23:33:08.153 に答える