1

SolrNet API を使用して一連のドキュメントのインデックス作成と検索を行っています。Solr ドキュメントを表す対応する POCO は次のとおりです。

internal class IndexDocument
{
    [SolrField("DocId")]
    public long DocId { get; set; }

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

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

データにインデックスを付けて、検索結果を正常に返すことができます。要件は、結果アイテムの関連性スコアを solr ドキュメント属性とともに返すことです。solr への検索リクエストに「score」をフィールドとして追加することで、スコア データを返すことができます。しかし問題は、solr ドキュメント クラスの一部ではないため、solr 結果でスコア データをどのように受け入れるかです。次のスニペットを使用して検索を実行します。

SolrQueryResults<IndexDocument> results = SolrInstance.Query(query, options);

solr 管理インターフェイスからクエリを実行するとスコア データが返されますが、検索結果は IndexDocument クラスに関してのみ返されるため、結果オブジェクトでスコア データを返すにはどうすればよいでしょうか。Grouping、Higlights、SimilarResults、Terms などの SolrQueryResults クラスの他のパラメーターは、通常 Solr ドキュメント クラスに関連していないため、スコア データを返すのには適していません。

4

3 に答える 3

1

これは、2 つの POCO クラスで実現できます。1 つは取得した結果のマッピング用で、もう 1 つはインデックス作成用です。次の方法でスコア フィールドを追加してください。

[SolrField("score")]
public double Score { get; set; }

データの取得に使用される最初のクラスのみ。

于 2013-07-10T14:34:37.960 に答える