MySQLで使用してみましたか
MATCH() と AGAINST() 関数の組み合わせ
彼らはあなたが探している結果をもたらすでしょう。
例えば
次のデータセット::
mysql> select * from temp;
+----+---------------------------------------------+
| id | string |
+----+---------------------------------------------+
| 1 | James Wood is the matyr. |
| 2 | Wood James is the saviour. |
| 3 | James thames are rhyming words. |
| 4 | Wood is a natural product. |
| 5 | Don't you worry child - Swedish House Mafia |
+----+---------------------------------------------+
5 rows in set (0.00 sec)
james または wood のいずれかが存在する必要がある場合、このクエリは次の結果を返します。
mysql> select string from temp where match (string) against ('james wood' in bo
olean mode);
+---------------------------------+
| string |
+---------------------------------+
| James Wood is the matyr. |
| Wood James is the saviour. |
| James thames are rhyming words. |
| Wood is a natural product. |
+---------------------------------+
4 rows in set (0.00 sec)
James と Wood の両方の単語が存在する必要がある場合、このクエリは機能しません。単語の前の「+」記号に注意してください。このブールモードを確認してください
mysql> select string from temp where match (string) against ('+james +wood' in b
oolean mode);
+----------------------------+
| string |
+----------------------------+
| James Wood is the matyr. |
| Wood James is the saviour. |
+----------------------------+
2 rows in set (0.00 sec)
任意の接尾辞を持つ単語を検索するには、同様の方法で機能します
mysql> select string from temp where match (string) against ('Jame*' in boolean
mode);
+---------------------------------+
| string |
+---------------------------------+
| James Wood is the matyr. |
| Wood James is the saviour. |
| James thames are rhyming words. |
+---------------------------------+
3 rows in set (0.02 sec)
ただし、Mysql による全文検索では、プレフィックス検索はまだサポートされていないことに注意してください。
mysql> select string from temp where match (string) against ('*ame*' in boolean
mode);
Empty set (0.00 sec)
これが役立つことを願っています。
親切なことに、この返信は非常に遅れていますが、返信するのに十分なほど興味がありました.
詳細については、このリンクを確認してくださいhttp://dev.mysql.com/doc/refman/5.5/en//fulltext-search.html