サーチ…


前書き

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;

ISBNTitleAuthorという名前の列を持つ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;

ISBNTitleAuthor列を持つbookという表がある場合、これは 'Date Database Programming'という用語に一致する書籍を検索します。それは最初に最良のマッチを示しています。最高の試合には、CJ Date教授の書があります。

(ただし、ベストマッチの1つは、 デートの日付医者のガイド:最初の日付から完全なメイトへの取得方法です。これはFULLTEXT検索の制限を示しています。索引付けされた単語の意味)

これを機能させるには、Title列とAuthor列の全文索引を使用可能にする必要があります。

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_author_index (Title, Author);


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow