2016-11-27 29 views
0

我收集的2.5L產品只有3個品牌,其中有75%,20%,10%配比。 現在,無論何時我對solr執行查詢,我總是使用從75%品牌集合中獲得產品。我想隨機化結果集,以使其他品牌的產品也進入最佳列表。solr品牌之間的隨機結果集

+0

可能的重複[Solr - 返回隨機結果(按隨機排序)](http://stackoverflow.com/questions/25234102/solr-return-random-results-sort-by-random) – root545

回答

0

有兩種助推。

  1. 指數時間提升

    指數時增強添加文檔時提升應用,並適用於整個文檔或特定領域。

  2. 查詢的時間提升構建一個搜索查詢時

    查詢的時間提升應用,並適用於特定的領域

讓你的品牌是brand_a,brand_b品牌_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功能。