我有2.5L产品的集合,只有3个品牌。分为75%,20%,10%的比例。 现在每当我对solr执行查询时,我总是使用从75%品牌集合中获取产品。我想随机化结果集,以便其他品牌的产品也排在首位。
答案 0 :(得分:0)
有两种提升方式。
在添加文档时应用索引时间提升提升,并应用于整个文档或特定字段。
构建搜索查询时应用查询时间提升,并应用于特定字段
让您的品牌是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>
您可以根据您的要求使用上述任何一种。
答案 1 :(得分:0)
您确定要完全忽略相关性,只返回(100%?)匹配用户搜索的随机产品吗?您可以有一个随机字段来执行此操作,但我怀疑这是一个短期解决方案。
您是否愿意 - 例如 - 按品牌对结果进行分组,然后返回每个品牌的前X个结果? Solr具有Collapse and Expand功能。