2012-04-25 17 views
0

私はSOLR 1.4を使用しています。検索インデックスでは、商品とカテゴリを保存します。各製品には複数のカテゴリがあります。カテゴリは文書のスコアに影響するはずです。SOLR 1.4 - フラグで並べ替え

この場合

Category 1 (flag 8) 
Category 2 (flag 4) 
Category 3 (flag 2) 
Category 4 (flag 1) 


Product A: Category 1 + Category 2 
Product B: Category 1 + Category 3 + Category 4 

は、製品A、製品Bよりも高いスコアを持っている必要があります。 8 + 4> 8 + 2 + 1

どのように私はSOLR 1.4でこれを実装することができますか?どんな助けでも大歓迎です!

+1

これはスコアリングや関連性よりもソートの問題です。これはあなたの唯一の要件ですか? – javanna

+0

@javannaに同意します。これは奇妙なやり方のように聞こえる。私は、ドキュメントがタグ付けされている各カテゴリに関連付けられた "フラグ"値を含む "フラグ"と呼ばれる複数値の浮動小数点フィールドを作成すれば可能であると思います。次に、fuctionクエリを使用して、関連性モデルを必要な方法で適用します。 (http://wiki.apache.org/solr/FunctionQuery) –

+0

@MaxCharas 'Sort By Function'はバージョン3.1から利用でき、私は1.4を使用しています –

答えて

1

あなたのコメントで言ったように、関連性についてあまり気にしない場合は、並べ替えを使用してsolrスコアに影響を与えないようにすることをお勧めします。ドキュメントのカテゴリに関連するフラグの合計を含むフィールドを追加し、そのフィールドを使用してソートすることができます。

solr 1.4で関数をソートすることはできませんが、3.xにアップグレードすると、フラグのリストを含む多値フィールドを持つことができ、その関数を使って合計を計算することができます、それを使用してfor sorting

どちらの場合でも、同じフラグの合計と同じタイトルのドキュメントでは、ソルスコアが表示されますが、これはそれほど重要ではありません。

+0

バージョン1.4で「関数別に並べ替え」は利用できません –

+0

良い点、申し訳ありません!私の答えを更新する。 – javanna

関連する問題