0

SolrNet クライアントを使用して Solr にクエリを実行しようとしています。ドキュメントにインデックスを付けて、エラーなしで Solr Web 管理者を使用して検索できます。ドキュメントにインデックスを付けた同じクラスを使用してクエリを実行しようとすると、すべてのフィールドで次のようなエラーが発生します。

エラー:

値 'System.Collections.ArrayList' をドキュメント タイプ Search.WebService.Handler.Document のプロパティ 'Title' に変換できませんでした

Solr が配列リストを各フィールドにマップしようとするのはなぜですか? これが私のセットアップの詳細です。スキーマはサンプルスキーマに基づいています。

私のスキーマ:

<field name="ReferenceId" type="identifier" indexed="true" stored="true" required="true"/>
<field name="Title" type="text_general" indexed="true" stored="true"/>
<field name="Revision" type="identifier" indexed="true" stored="true"/>
<field name="Author" type="text_general" indexed="true" stored="true"/>
<field name="Filename" type="text_general" indexed="true" stored="true"/>

マイ ドキュメント クラス:

class Document
{
    [SolrField("ReferenceId")]
    public string ReferenceId { get; set; }

    [SolrField("Title")]
    public string Title { get; set; }

    [SolrField("Revision")]
    public string Revision { get; set; }

    [SolrField("Author")]
    public string Author { get; set; }

    [SolrField("Filename")]
    public string Filename { get; set; }
}

クエリの例:

string queryString = String.Format("Title :\"{0}\"", titleSearchTerm);
SolrQuery query = new SolrQuery(queryString);
SolrQueryResults<Document> results = index.Query(query);
4

1 に答える 1

0

各フィールドに属性 multiValued="false" を追加しました。

multiValued フィールドの詳細については、ドキュメントを参照してください。

于 2012-05-09T09:53:46.583 に答える