2011-08-27 60 views
0

我使用下面的代碼,例如:首先從全文搜索中獲取精確匹配?

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列中存在精確匹配,完全匹配不會出現untiil第八結果。前面的所有內容都有這個短語,但也有一些以下的文字。我檢查了locn,gns字段,看看他們是如何比較的,沒有什麼東西可以讓其他人獲得更高分。

我做了一些關於使用BOOLEAN MODE的閱讀,但沒有任何我在那裏讀到的東西似乎會幫助我的需求。

回答

1

好吧,如果這能幫助別人,我能夠實現我希望通過這樣做:

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; 
+0

此查詢救了我的一天 –