1

このチュートリアルに従って、mysql 全文検索を行いました。

私はこのテーブルを持っています:

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(20) NOT NULL AUTO_INCREMENT,
  `textrow` varchar(256) NOT NULL,
  PRIMARY KEY (`id`),
  FULLTEXT KEY `textrow` (`textrow`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

INSERT INTO `test` (`id`, `textrow`) VALUES
(1, 'Agajan Torayev'),
(2, 'torayeff');

ALTER TABLE test ADD FULLTEXT(textrow);

これらのクエリの違いは何ですか (1 つでは結果がゼロになります):

mysql> SELECT * FROM test WHERE MATCH(textrow) AGAINST('agajan');
Empty set (0.00 sec)

mysql> SELECT *, MATCH(textrow) AGAINST('agajan') FROM test;
+----+----------------+----------------------------------+
| id | textrow        | MATCH(textrow) AGAINST('agajan') |
+----+----------------+----------------------------------+
|  1 | Agajan Torayev |                                0 |
|  2 | torayeff       |                                0 |
+----+----------------+----------------------------------+
2 rows in set (0.00 sec)
4

1 に答える 1

1

違いは、最初のクエリでは結果をmatching データでフィルタリングし、2 番目のクエリではすべてのレコードを出力し、ing の結果を示す列を追加するmatchことです。

結果が出ないからといって

自然言語検索は、検索文字列を人間の自然言語のフレーズ (フリー テキストのフレーズ) として解釈します。[...] さらに、行の 50% 以上に存在する単語は一般的であると見なされ、一致しません

MySQL 全文検索関数から取得

于 2013-03-31T11:48:18.347 に答える