在solr中搜索特定关键字,在顶部显示特定文档

时间:2015-03-05 04:14:24

标签: search plugins solr mapping relevance

假设我在我的网站上列出了1000个卖家(S1 ..... S1000)的服饰。由于所有卖家都向我支付了一些金额,我给他们相同的体重年龄,并根据相关性显示结果。

现在,我计划从高级服务开始,我想在搜索结果中为每个关键字列出一个供应商。比方说,S1已经获得关键字'牛仔裤的高级搜索,所以如果用户搜索“牛仔裤”,我首先要在顶部显示该供应商,然后显示其他供应商关于相关性。此外,这项优质服务仅限一个月。因此,另一家供应商称S2可以在下个月使用这项服务,依此类推。

是否有插件,其中我可以存储哪个供应商应显示哪个关键字。我甚至可以通过2次查询来满足期望结果。

请建议

2 个答案:

答案 0 :(得分:0)

我认为查询提升组件是您的朋友,您可以为任何给定的查询配置哪些文档(以及哪些供应商),请参阅

https://wiki.apache.org/solr/QueryElevationComponent

如果这工作太多,您还可以在文档中添加一个新的布尔字段,指示是否要提升文档,并在查询中首先按此字段排序(因此提升的文档会在顶部) ,然后按分数(所以大多数相关文件都在推广之后)。

答案 1 :(得分:0)

您也可以使用reRanking Componant:

https://cwiki.apache.org/confluence/display/solr/Query+Re-Ranking

使用这样的查询:

q=jean&rq={!rerank reRankQuery=$rqq reRankDocs=1000 reRankWeight=3}&rqq=(brand:S1)

来自查询 jean 的前1000个结果将重新排名,这要归功于包含具有值S1的字段品牌的文档的增强(3)。

它可能很有用,但在您的情况下,我认为QueryElevationComponent是最好的。

小心,reRanking仅在4.9版本之后可用。