0

这个问题与全文搜索在搜索确切标题时不起作用有关

我正在尝试学习如何有效地搜索数据库,并且遇到了 FULLTEXT 搜索,这似乎是最好的选择。在这一点上,我的表仍然很小,因为我还没有收集到很多数据。我有这个可以搜索表的 sql 代码

SELECT * FROM table WHERE MATCH(title) AGAINST ('hamlet') LIMIT 30;

但由于只有一行,它什么也没返回。有什么解决方法,允许查询返回信息?

谢谢

4

1 回答 1

0

这就是我所做的:

SELECT title ,
MATCH(title) 
AGAINST ('hamlet' IN BOOLEAN MODE)
AS relevance 

FROM test 
WHERE  MATCH(title) 
AGAINST ('hamlet' IN BOOLEAN MODE) 

HAVING relevance > 0 ORDER BY relevance DESC

使用的表:

CREATE TABLE IF NOT EXISTS `test` (
  `id` tinyint(4) NOT NULL,
  `title` varchar(255) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `name_2` (`title`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Dumping data for table `test`
--

INSERT INTO `test` (`id`, `title`) VALUES
(2, 'hamlet');
于 2013-02-10T18:59:03.383 回答