3

私は、ユーザーがコレクション内のアイテムを整理するプラットフォームを開発しています。各コレクションは、ユーザーがフォローできます。これらのコレクションは、後でSolrによって索引付けされ、検索可能になります。コレクション名(およびその中のアイテムの名前)に対して非常に単純な種類のブーストを使用すると、ほとんどの場合、アイテムの数が非常に少ないコレクションが得られることに気付きました(これは通常のことです。単語のプールがあるためです。はるかに小さい=>関連性が高い)。もちろん、これは私が望んでいることではありません。

私が欲しいのは、NumItemsと呼ばれるSolrでインデックス付けする別のフィールドでコレクション名をブーストできるようにすることです。

言い換えれば、の代わりにname:query^3、のようなものを取得するためにname:query^numItems、またはさらに良いname:"query"^(numItems*numFollowers)

これは可能ですか?これが唯一のオプションですか?頭に浮かぶ他の唯一のことは、同じパラメーターで結果をソートしようとすることです。

4

1 に答える 1

2

最も簡単なアプローチはomitNorms、schema.xmlのfieldプロパティを使用して、メインフィールドの長さの正規化を無効にすることです。

それでもスコアを微調整する必要がある場合は、関数クエリを使用できます。詳細については、ここを参照してください。ただし、上記で説明したような単純なブーストを使用するクエリ文字列の簡単な例は次のとおりです。

q={!boost b=(numItems*numFollowers)}query
于 2013-03-24T15:11:51.380 に答える