【问题标题】:MySQL search text column for a specific wordMySQL 搜索特定单词的文本列
【发布时间】:2011-08-16 23:44:39
【问题描述】:

我想做的是在我的表中搜索一个特定词,如下所示:

SELECT * FROM my_table WHERE MATCH (description) AGAINST ('test');

这将返回 my_table 中包含字符串 'test' 的所有行。

问题是这种剂量并不总是发生。这意味着它有时会在我重新创建表后起作用。

CREATE TABLE my_table 
(date date, 
time time, 
name varchar(50), 
description text, 
FULLTEXT INDEX (description)) ENGINE=MYISAM;

因为它只是偶尔发生,这让我相信索引一定有问题。

所以我尝试将 ft_min_word_len 设置为 1,但什么也没做。 我的 MySQLVersion 是 5.1.57-community。

感谢您的帮助。

【问题讨论】:

    标签: mysql indexing full-text-search


    【解决方案1】:

    match and against 是一种自然语言搜索。如果您的列包含您在 against() 参数中传递的内容的 50% 或更多,则它将被认为是常见的并且不会返回任何内容。只需使用SELECT * FROM my_table WHERE DESCRIPTION LIKE '%test%',其中 % 通配符表示前后有一个单词或短语或后缀/前缀。

    在这里阅读http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html了解更多信息

    【讨论】:

    • 谢谢。它成功了,下次我会尝试更彻底地阅读文档。
    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多