2011-07-14 18 views
10

と遅いですスロー。 マッチを使用するオプションがあると私は理解しました。違いはなんですか?どうやって?私の使い方に最も適した方法は何ですか? 、私は変更したい SELECT
*, MATCH (name) AGAINST ('a*' IN BOOLEAN MODE) AS SCORE
FROM
users WHERE
MATCH (name) AGAINST ('a*' IN BOOLEAN MODE)
ORDER BY SCORE, popularity DESC LIMIT 4
mysqlのは、私はこのようなクエリのような単純なMySQLを使用しているフルテキストインデックス

一つのことです。私はこのようなものを使用して終了しました :私は「AAA」

UPDATEで始まるすべてのために「%」を使用してい お知らせ最初にSCOREによって注文され、次に私のフィールド人気によって注文されるのではなく、0.5 * SCORE + 0.5 *のような単純な重み関数によって注文されます。どうやって?

答えて

10

LIKEフルテキストインデックスは使用しません。フルテキストインデックスを使用するには、あなたは(あなたが言ったように)マッチを使用する必要があります。

SELECT * 
FROM myTable 
WHERE MATCH(field) AGAINST ('aaa*' IN BOOLEAN MODE) 
ORDER BY field2 

MySQL ManualFull-Text Search Functionsに関する広範な章があります。

+0

興味深い..誰もDB2やsybaseの同等のクエリを持っていますか? Googleはあまり役に立っていません。 – user606723

+0

@ user606723この記事を見てください:[DB2 Text Searchによる全文検索](http://www.ibm.com/developerworks/data/tutorials/dm-0810shettar/index.html) – Jacob

+0

私は更新しました私の質問は「注文」です。それをどのように追加できますか? – Noam

関連する問題