从全文搜索中获取EXACT匹配首先返回?

时间:2011-08-27 22:50:43

标签: mysql full-text-search relevance

我使用以下代码:

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列中存在EXACT匹配,EXACT匹配也不会显示第8个结果。前面的那些都有这个短语,但也有一些跟随文本。我检查了locngns字段,看看他们是如何比较的,没有什么能让其他人得分更高。

我做了一些关于使用BOOLEAN MODE的阅读,但我在那里看到的任何内容似乎都无法满足我的需求。

1 个答案:

答案 0 :(得分:2)

好的,如果这有助于其他任何人,我可以通过这样做实现我想要的目标:

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;
相关问题