Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Search 如何在Solr Dismax查询中正确提升结果_Search_Lucene_Solr - Fatal编程技术网

Search 如何在Solr Dismax查询中正确提升结果

Search 如何在Solr Dismax查询中正确提升结果,search,lucene,solr,Search,Lucene,Solr,我已经设法在Solr中建立了一个索引,我可以搜索关键字、生成facet、查询facet等。这一切都很好。我使用Demax查询实现了我的搜索,因此它搜索预先确定的字段 然而,我的结果是按分数排序的,而分数似乎只是按关键字相关性计算的。我想调整字段具有预定义值的分数。我想我可以用boost查询和boost函数来实现这一点,但是这里的文档: 这不是特别有用。我尝试在搜索中添加bq参数: &bq=media:DVD^2 (是的,这是一个电影索引!)但当我开始添加越来越多的内容时,我发现: &

我已经设法在Solr中建立了一个索引,我可以搜索关键字、生成facet、查询facet等。这一切都很好。我使用Demax查询实现了我的搜索,因此它搜索预先确定的字段

然而,我的结果是按分数排序的,而分数似乎只是按关键字相关性计算的。我想调整字段具有预定义值的分数。我想我可以用boost查询和boost函数来实现这一点,但是这里的文档:

这不是特别有用。我尝试在搜索中添加bq参数:

&bq=media:DVD^2
(是的,这是一个电影索引!)但当我开始添加越来越多的内容时,我发现:

&bq=media:DVD^2&bq=media:BLU-RAY^1.5
我发现负面结果-例如,DVD但不是蓝光的电影在分数上受到负面影响。最后,一切似乎趋于平衡,我的得分与我开始提高之前一样


我一定是做错了,我想知道“增强功能”是不是有什么作用。关于如何正确使用boost有什么想法吗?

听起来您需要在索引时而不是在查询时应用boost。因此,当您准备将文档添加到索引时,将DVD的文档增加2,将蓝光的文档增加1.5。

显然,对于DVD但非蓝光的电影,这是正常的,它们的分数会受到负面影响。这是因为您添加的约束越多,QueryForm值减少的越多,所有分数都会乘以该值。

这有点晚了,看起来您可能已经拥有了所需的内容,但是

如果您对boost函数感兴趣(根据您想要的结果判断,我认为您应该对boost函数感兴趣),您应该查看
bf
参数,而不是
bq
参数

尝试将bf参数设置为

media:DVD^2 media:BLU-RAY^1.5
我认为这可以实现你想要的