2012-10-24 81 views
0

我正在嘗試爲我的新聞系統構建標籤系統。我已經完成像這樣的表結構:爲我的新聞系統實現標籤系統

CREATE TABLE article_tags (
id int(11) unsigned NOT NULL auto_increment, 
tag varchar (255) not null, 
primary key (id)); 


CREATE TABLE article_tags_map (
id int(11) unsigned NOT NULL auto_increment, 
tag_id int(11) unsigned not null, 
article_id int(11) unsigned not null, 
primary key (id)); 

現在,我只是想知道它是否將是有意義的全文索引中article_tags表添加到標籤欄?

$search = $_POST['search_string']; 
$search_result = mysql_query ("SELECT *, MATCH(tag) AGAINST ($search) AS score 
from article_tags 
WHERE MATCH (tag) AGAINST($search) 
order by score desc"); 

或者我會使用LIKE和%通配符更好嗎?如果我要使用全文搜索,我不確定我應該使用什麼閾值來評分?

回答

1

試試這個。

SELECT * 
from article_tags 
WHERE tag like '%$search%' 
order by tag desc 

SELECT * 
    from article_tags 
    WHERE match(tag) against ('%$search%') 
    order by tag desc 

也看看這個頁面,在這裏他們談論全文搜索:http://devzone.zend.com/26/using-mysql-full-text-searching/

+0

列得分沒有定義 – Ashesh

+0

@Ashesh我編輯它,再試一次。 – jcho360

+0

謝謝。但是不應該按照分數排序而不是按標籤排序? – Ashesh