0

SOLR を使用しており、MoreLikeThis クエリをフィルタリングしようとしています。フィルターを実行するたびに、結果がゼロになります。私が使用しているコードは次のとおりです。

var results = solr.Query(new SolrQuery("id:" + id)
                         && !new SolrQuery("siteid:" + SiteId), new QueryOptions
{
    MoreLikeThis = new MoreLikeThisParameters(new[] { "content" })
    {
        MinDocFreq = 1,
        MinTermFreq = 1,
        Count = rows
    },
    Fields = new[] { "id" },
    OrderBy = new[] { new SortOrder("score", Order.ASC) },
    Start = start
});

!new SolrQuery("site:" + SiteId)フィルターはご覧の通り。このフィルターをクエリに追加すると、結果が得られません。

クエリの内容は次のとおりです。私はsolrインデックスにたくさんのウェブページを持っています:

  • ID
  • 題名
  • コンテンツ
  • サイト ID

morelikethis クエリは、id類似したドキュメントを取得します。フィルターは、サイト ID で Web ページをフィルター処理することを想定しています。siteid フィルターを適用しても機能しません。これに関するアイデアはありますか?

4

1 に答える 1

2

コンポーネントとして MoreLikeThisではなく、 MoreLikeThis ハンドラを使用したいようです。

これを実装するパッチが SolrNet にあり、現在レビュー中です。パッチを見て、フィードバックをお寄せください。

于 2011-10-23T14:09:39.397 に答える