首先从全文搜索中获得精确匹配



我使用下面的代码,例如:

SELECT *, (MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker')) AS score FROM `example_table` WHERE MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker')) order by score DESC;

然而,即使在wm列中存在精确匹配,精确匹配直到第8个结果才出现。在它前面的都有这个短语,但也有一些下面的文字。我检查了locn, gns字段,看看它们是如何比较的,没有什么真正突出的,应该使其他得分更高。

我做了一些关于使用BOOLEAN MODE的阅读,但我在那里读到的似乎没有什么能帮助我的需求。

好的,如果这对其他人有帮助的话,我可以这样做来实现我想要的:

SELECT *, 
  CASE WHEN wm = 'foot locker' THEN 1 ELSE 0 END AS score, 
  MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker') AS score2 
FROM 
  `example_table` 
WHERE 
  MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker')) 
ORDER BY
  score DESC, score2 DESC;

相关内容

  • 没有找到相关文章

最新更新