我正在为查询提取匹配结果。例如,我在学生表(Point&)c
中有一个可搜索的列,所以如果我输入“Mack”作为查询,那么它将使用“Mack”检索所有匹配的记录名称。像“Mack Paul”,“Mack Rhodes”,“Mack”等等。
但是,我希望得到最好的比赛,首先是“Mack”,然后保持像“Mack Paul”,“Mack Rhodes”等等。
我是狮身人面像的新手,不知道如何根据完全匹配优先设置结果集,然后再休息。
有没有办法根据优先级或得分到列获得结果 值?
答案 0 :(得分:0)
SPH_RANK_SPH04
http://sphinxsearch.com/docs/current.html#builtin-rankers
当它们出现在文本字段的最开头或最后时,还会增加匹配。因此,如果字段等于完全查询,则SPH04应将其排名高于包含完全查询但不等于它的字段。
如果想法使用字段长度来影响权重,请参阅http://sphinxsearch.com/docs/current.html#conf-index-field-lengths
或者可以尝试重写qyery
$cl->Query("Mack | ^Mack$");
...理论应该将精确匹配排名更高,因为它匹配两个术语。虽然您可能还必须与RANKER一起玩,以便以有意义的方式实际更改排名。