// テーブルを作成
CREATE TABLE `TEST_FULL_TEXT_SEARCH`
(
`ID` INT NOT NULL AUTO_INCREMENT,
`TEST` VARCHAR(45) NULL,
PRIMARY KEY (`ID`),
FULLTEXT INDEX `FULL_TEXT` (`TEST` ASC)
)
ENGINE = MyISAM;
// いくつかのレコードを挿入
INSERT INTO `TEST_FULL_TEXT_SEARCH`
SELECT 1, 'vikas kumar gupta' UNION ALL
SELECT 2, 'kratika gupta' UNION ALL
SELECT 3, 'kratika sharma' UNION ALL
SELECT 4, 'kratika vikas kumar gupta' UNION ALL
SELECT 5, 'kratika shukla' UNION ALL
SELECT 6, 'chetan kastwar' UNION ALL
SELECT 7, 'kratika kastwar' ;
// 選択クエリに移ります
SELECT * FROM TEST_FULL_TEXT_SEARCH
WHERE MATCH(test)
AGAINST('kratika' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION );
// または
SELECT * FROM TEST_FULL_TEXT_SEARCH
WHERE MATCH(test)
AGAINST('kratika' WITH QUERY EXPANSION);
// 出力
1 vikas kumar gupta
4 kratika vikas kumar gupta
3 kratika sharma
5 kratika shukla
2 kratika gupta
- 結果セットで「 kratika kastwar 」が選択されないのはなぜですか?
- 最初になぜ「vikas kumar gupta」なのか
// Boolean モードで検索します
SELECT * FROM TEST_FULL_TEXT_SEARCH
WHERE MATCH(test)
AGAINST('kratika' IN BOOLEAN MODE);
// 出力
2 kratika gupta
3 kratika sharma
4 kratika vikas kumar gupta
5 kratika shukla
7 kratika kastwar
- なぜ「kratika kastwar」があるのですか?
// boolean モードでクエリを展開せずに検索します
SELECT * FROM TEST_FULL_TEXT_SEARCH
WHERE MATCH(test)
AGAINST('kratika' IN NATURAL LANGUAGE MODE);
// 出力
No result found
リストで「 kratika kastwar」が選択されていない理由を明確にしてください
// 編集済み
「vikas kumar gupta」IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION
またはkratika関連の結果でWITH QUERY EXPANSION
はなく、最初のランクで表示されるのはなぜですか?