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文字と%ワイルドカード文字を使用したほうがよいでしょうか?全文検索を使用する場合、スコアにどのしきい値を使用すればよいかわかりません。

4

1 に答える 1

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/

于 2012-10-24T16:32:18.503 に答える