2016-11-27 1 views
0

私は75%、20%、10%の割合で分かれている3つのブランドしか持たない2.5Lの製品のコレクションを持っています。 私はsolrへのクエリを実行するたびに、常に75%のブランドコレクションから製品を取得するために使用します。他のブランドの製品もトップリストになるように結果セットをランダム化します。solrのブランド間で結果セットをランダム化

+0

[Solr - ランダムな結果をランダムに返す]の可能な複製(http://stackoverflow.com/questions/25234102/solr-return-random-results-sort-by-random) – root545

答えて

0

2種類のブーストがあります。

  1. 指数-時間が後押し

    指数-時間がブーストドキュメントを追加する際に適用され、文書全体または特定のフィールドに適用されて向上させます。

  2. 問合せ時間は

    問合せ時間ブーストは、検索クエリを構築する際に適用され、特定のフィールド

ブランドのあるbrand_a、brand_bをしてみましょうにも適用されている後押しbrand_cとブランドフィールド名はブランド
brand_aブーストを1、brand_bブーストを2、brand_cブーストを3

にする

問合せ時間ブースト:

brand:"brand_a"^1 OR brand:"brand_b"^2 OR brand:"brand_c"^3 

インデックスタイムのブースト:

<add> 
    <doc boost="1"> 
    <field name="brand">brand_a</field> 
    ... 
    </doc> 
    <doc boost="2"> 
    <field name="brand">brand_b</field> 
    ... 
    </doc> 
    <doc boost="3"> 
    <field name="brand">brand_c</field> 
    ... 
    </doc> 
</add> 

あなたはあなたの要件に応じて、上記のいずれかを使用することができます。

0

本当に関連性を完全に無視し、(100%?)ユーザー検索と一致するランダムな商品を返すことを本当に確信していますか?あなたはそうするためにランダムなフィールドを持つことができますが、私はそれが短期的な解決策であると考えています。

代わりに、たとえばブランド別に結果をグループ化し、各ブランドのトップXの結果を返すことをお勧めしますか? SolrはそのためにCollapse and Expandの機能を持っています。

関連する問題