2009-12-22 83 views
0

嗨,你知道我如何能更優化全場比賽搜索一些把戲?如何優化MySQL的全場比賽

,我試圖優化代碼:

$do = $this->select() 
     ->where('MATCH(`name`,`ort`) AGAINST(? IN BOOLEAN MODE)', $theString) 
     ->order('premium DESC'); 

搜索應該尋找一些公司......,讓我們說,在該領域我:谷歌,並在ORT場我有紐約

我想做一個查詢,如:谷歌中心在紐約並給我結果所有的谷歌中心只有紐約!

我希望你明白我的意思!

+0

措辭不佳的問題。什麼是完全匹配搜索?你的意思是全文搜索?也許絕對值匹配? – 2009-12-22 19:28:44

回答

1

使用的相關性進行排序

$do = $this->select("*, MATCH(`name`,`ort`) AGAINST ('{$theString}') AS score") 
     ->where('MATCH(`name`,`ort`) AGAINST(? IN BOOLEAN MODE)', $theString) 
     ->order('premium DESC, score'); 
1

您的查詢的類型可能通過全文搜索在NATURAL LANGUAGE MODE而不是BOOLEAN MODE匹配較好。

如果你搜索在布爾模式「在紐約的谷歌中心」,你會發現所有這些關鍵字的任何比賽,但不一定按順序或匹配的那些概念。