1

Solr 1.4 相当新——似乎确实非常强大。但是,当尝试按相关性(分数)和 rating_value(每个结果的 0 到 5 星评级)的顺序返回搜索结果时,我被卡住了。

我尝试通过“评分 desc,分数 desc”来排序搜索结果,虽然这很有效,但感觉有点基本。

我最终想根据它被评为多少星(0 到 5)来提高搜索结果的相关性。因此,一个 5 星的结果应该给予最高的提升。

我确实尝试添加 'rating_value:1^0.1 rating_value:2^0.2' 等等,但这似乎大大提高了没有关键字匹配但确实有高星级的答案。

很感谢任何形式的帮助!谢谢, 赛布

4

2 回答 2

3

您在正确的轨道上添加带有提升值的“rating_value”术语。但是,请确保在构建查询时,关键字词是“必须”词,这将要求文档包含该词才能返回。

从那里您可以使用每个术语的相对提升值。如果评分提升太高,您可以给关键字更多的提升,反之亦然。重要的是要知道提升的绝对值在各个字段之间是不可比较的,即给关键字提升 20 和 rating_value 提升 19 并不意味着关键词会得到更多提升,主要是因为长度标准化。有关更多信息,请参阅 Lucene 的相似性。

于 2011-02-02T14:30:29.203 回答
2

如果您使用的是 DISMAX 请求处理程序,您还应该考虑使用bq(提升查询)字段进行提升,因为这种提升只影响用户查询已经匹配的文档。

您将在请求处理程序内的 solrconfig.xml 中预定义 bq 字段,例如

<str name="bq">
  rating_value:1^0.1 rating_value:2^0.2
</str>
于 2011-06-17T01:07:34.973 回答