狮身人面像搜索排名被打破? [英] Sphinx search ranking broken?

查看:0
本文介绍了狮身人面像搜索排名被打破?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人使用过Sphinx排名选项吗?我已经读了手册和书,但根本不能让排名发挥作用。据我所知,排名只是以一种不同的方式计算权重,不进行任何类型的排序。我有我的结果按@Weight(内部狮身人面像字段)和使用排序模式扩展,这是您需要的,但看不到不同的排名模式之间的任何区别。我的配置如下所示:

$cl->SetMatchMode( SPH_MATCH_EXTENDED2 );  
$cl->SetSortMode ( SPH_SORT_EXTENDED, "mylang DESC, @weight DESC, @id"); 

这两项都不会有任何影响:

$cl->setRankingMode(SPH_RANK_SPH04);
$cl->setRankingMode(SPH_RANK_PROXIMITY_BM25);

并且权重在这两种模式下都相同。

最终,我要实现的是将完全匹配的术语排在最前面。例如,如果搜索"哈利波特",结果应该如下所示:

Harry Potter
Harry Potter and the potters
Harry Potter and the Prisoner of Azkaban
Harry Potter and the Deathly Hallows: Part 1

这只是一个示例,但第一个结果应该是包含确切搜索词的结果,然后其他结果将紧随其后。这没发生过。有谁有这方面的经验吗?

sph

原来推荐答案_RANK_SPH04不包含在0.9.9版的sphinxapi.php文件中!所以,即使你正在调用它,它也不会被考虑,而且不会产生错误。

这很糟糕,因为它使故障排除变得非常困难。

我将此作为答案发布,希望能对其他人有所帮助。我们为这件事疯狂了将近两天,直到我们弄清楚。

此外,2.0.1中有一个错误,它并没有真正带来一些精确的匹配,因为您需要2.0.2(您需要从SVN获得)或更高版本,但我会非常厌倦在生产中使用实验版本。

希望Sphinx开发人员很快就能解决这个问题。

PS 回过头来看开发人员日记,上面确实写着:

"从1.10测试版开始,Sphinx有8个不同的排名"

我们从0.9.9升级到2.0.1,一定是把API文件落在后面了,无奈之下,我从来没有检查过这一点。如果排名模式不存在(就像匹配等其他模式一样),那么Sphinx抛出一个错误还是不错的,而且我们在测试中发现2.0.1错误仍然存在。

这篇关于狮身人面像搜索排名被打破?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆