Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr Lucene-基于0到5星级评级提升相关性?_Lucene_Solr_Rating - Fatal编程技术网

Solr Lucene-基于0到5星级评级提升相关性?

Solr Lucene-基于0到5星级评级提升相关性?,lucene,solr,rating,Lucene,Solr,Rating,Solr1.4非常新-看起来确实非常强大。然而,当我试图按照相关性(分数)和评分值(每个结果的评分为0到5星)的顺序返回搜索结果时,我被卡住了 我尝试过通过“rating desc,score desc”来排序搜索结果,虽然这样做有效,但感觉有点基本 最后,我想根据搜索结果被评为(0到5)的星星数来提高搜索结果的相关性。因此,5星级的成绩应该会带来最大的提升 我确实尝试过添加“rating_value:1^0.1 rating_value:2^0.2”等,但这似乎极大地提高了没有关键词匹配但有高

Solr1.4非常新-看起来确实非常强大。然而,当我试图按照相关性(分数)和评分值(每个结果的评分为0到5星)的顺序返回搜索结果时,我被卡住了

我尝试过通过“rating desc,score desc”来排序搜索结果,虽然这样做有效,但感觉有点基本

最后,我想根据搜索结果被评为(0到5)的星星数来提高搜索结果的相关性。因此,5星级的成绩应该会带来最大的提升

我确实尝试过添加“rating_value:1^0.1 rating_value:2^0.2”等,但这似乎极大地提高了没有关键词匹配但有高星级的答案

非常感谢您的帮助!
谢谢,Seb

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


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

将“评级值”术语添加到提升值中是正确的。但是,在构造查询时,请确保关键字术语是“必须”术语,这将要求文档包含该术语才能返回


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

< P>如果使用DISMAX请求处理程序,还应该考虑使用<强> BQ(Boost查询)字段进行升压,因为此Boost只影响已经由用户查询匹配的文档。

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

<str name="bq">
  rating_value:1^0.1 rating_value:2^0.2
</str>

额定值:1^0.1额定值:2^0.2

< /代码> 如果您使用的是DISMAX请求处理程序,您还应该考虑使用<强> BQ(Boost Quy)字段进行升压,因为此Boost只会影响已经由用户查询匹配的文档。

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

<str name="bq">
  rating_value:1^0.1 rating_value:2^0.2
</str>

额定值:1^0.1额定值:2^0.2

啊,是的,我明白了。我的问题是返回的结果没有查询关键字匹配;他们被展示只是因为他们有一个评级。我将如何处理您在我的问题中提出的上述“必须”条款?“q=foo额定值:1^0.1额定值:2^0.2”@seb835:a加号表示需要。所以你的答案应该是
q=+foo评级值:1^.01评级值:2^.02
Yes,这就是答案。我现在的查询如下:q=+(foo-bar-nar)rating_-value:1^0.1。。。问题解决了!非常感谢大家。啊,是的,我明白了。我的问题是返回的结果没有查询关键字匹配;他们被展示只是因为他们有一个评级。我将如何处理您在我的问题中提出的上述“必须”条款?“q=foo额定值:1^0.1额定值:2^0.2”@seb835:a加号表示需要。所以你的答案应该是
q=+foo评级值:1^.01评级值:2^.02
Yes,这就是答案。我现在的查询如下:q=+(foo-bar-nar)rating_-value:1^0.1。。。问题解决了!非常感谢大家。