MySQL
全文検索
サーチ…
前書き
MySQLはFULLTEXT検索を提供します。これは、単語とフレーズに最もよくマッチするテキストを含む列を持つ表を検索します。
備考
FULLTEXT
検索は、少数の行を含む表では不思議な動作をします。だから、あなたがそれを試しているときに、中規模のテーブルをオンラインで入手すると役に立つかもしれません。タイトルと著者の書籍アイテムの一覧です 。ダウンロードして解凍し、MySQLにロードすることができます。
FULLTEXT
検索は人間の援助を目的としています。これは、通常のWHERE column LIKE 'text%'
フィルタリング操作より多くの一致を生成するように設計されていWHERE column LIKE 'text%'
。
FULLTEXT
検索はMyISAM
テーブルで利用できます。 MySQLバージョン5.6.4以降のInnoDB
テーブルでも使用できます。
シンプルなFULLTEXT検索
SET @searchTerm= 'Database Programming';
SELECT MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) Score,
ISBN, Author, Title
FROM book
WHERE MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE)
ORDER BY MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) DESC;
ISBN
、 'Title'、 'Author'という名前の列を持つbook
というテーブルがある場合、これは'Database Programming'
という用語に一致する書籍を検索します。それは最初に最良のマッチを示しています。
これを行うには、 Title
列の全文索引を使用可能にする必要があります。
ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);
シンプルなBOOLEAN検索
SET @searchTerm= 'Database Programming -Java';
SELECT MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE) Score,
ISBN, Author, Title
FROM book
WHERE MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE)
ORDER BY MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE) DESC;
ISBN
、 Title
、 Author
という名前の列を持つbook
という表がある場合、 Title
は'Database'
と'Programming'
という単語が含まれていますが、 'Java'
という単語は検索されません。
これを行うには、タイトル列の全文索引を使用可能にする必要があります。
ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);
複数列FULLTEXT検索
SET @searchTerm= 'Date Database Programming';
SELECT MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) Score,
ISBN, Author, Title
FROM book
WHERE MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE)
ORDER BY MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) DESC;
ISBN
、 Title
、 Author
列を持つbookという表がある場合、これは 'Date Database Programming'という用語に一致する書籍を検索します。それは最初に最良のマッチを示しています。最高の試合には、CJ Date教授の書があります。
(ただし、ベストマッチの1つは、 デートの日付医者のガイド:最初の日付から完全なメイトへの取得方法です。これはFULLTEXT検索の制限を示しています。索引付けされた単語の意味)
これを機能させるには、Title列とAuthor列の全文索引を使用可能にする必要があります。
ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_author_index (Title, Author);