MySQL全文搜索hashtags(包括索引中的#符号)

MySQL全文搜索hashtags(包括索引中的#符号),mysql,full-text-search,myisam,hashtag,Mysql,Full Text Search,Myisam,Hashtag,我非常确定应该有一种方法可以使用MyISAM表中的全文索引来搜索hashtag。默认设置将执行以下操作: textfield hashtag #hashtag #two #hashtag #hashtag SELECT * FROM table WHERE MATCH(textfield) AGAINST ('#hashtag') > | hashtag | > | #hashtag | > | #two #hash

我非常确定应该有一种方法可以使用MyISAM表中的全文索引来搜索hashtag。默认设置将执行以下操作:

textfield 
hashtag
#hashtag
#two #hashtag #hashtag

SELECT * FROM table WHERE MATCH(textfield) AGAINST ('#hashtag')
> | hashtag                |
> | #hashtag               |
> | #two #hashtag #hashtag |
而它应该只返回第2行和第3行。看起来hashtag被视为一个单词分隔符,因此在搜索开始之前它被“删除”。我应该怎么做才能对包含
#
作为单词一部分的术语进行索引和搜索?

如下所述:

可以通过多种方式更改被视为单词字符的字符集,如下表所述。修改后,为包含任何
FULLTEXT
索引的每个表重新生成索引。假设要将连字符(
'-'
)视为单词字符。使用以下方法之一:

  • 修改MySQL源代码:在
    storage/myisam/ftdefs.h
    中,请参阅
    true\u word\u char()
    misc\u word\u char()
    宏。将
    '-'
    添加到其中一个宏并重新编译MySQL

  • 修改字符集文件:这不需要重新编译。
    true\u word\u char()
    宏使用“字符类型”表将字母和数字与其他字符区分开来。您可以在一个字符集XML文件中编辑
    数组的内容,以指定
    '-'
    是一个“字母”。然后将给定的字符集用于
    全文索引。有关
    数组格式的信息,请参阅

  • 为索引列使用的字符集添加新的排序规则,并更改列以使用该排序规则。有关添加排序规则的一般信息,请参阅。有关特定于全文索引的示例,请参见


是否有类似的选项可以将“.”作为innodb全文索引的单词字符?