看来 MySQL FullText 索引没有索引单词“C#”。可能是因为字符“#”被删除了,只剩下 C,而 C 太短,无法索引。
我的问题是,我该如何对“C#”进行索引,以便在我的 FullText 索引中可以搜索它?
谢谢,
约翰
答案1
我认为可以通过调整 ft_min_word_len 系统变量来解决这个问题,该变量用于设置要索引的单词的最小长度。将此值设置为 2。更多信息这里。
答案2
我不知道如何做到这一点,并且搜索它似乎被接受为 MySQL 全文搜索的限制。
我想你已经考虑过这一点,但以防万一:你可以在将数据存储到数据库之前对不可搜索的字符进行编码。因此 C# 将变成 C.Sharp,C++ 将变成 C.Plus.Plus,等等。
答案3
您可以升级 ft_min_word 以允许 2 个字符,默认情况下,它设置为 4 个字符,对于大多数人来说,这有点太多了,3 个字符更合适。我的设置为 2。
此外,在 MySQL 全文配置文件中,您可以更改忽略的单词列表。我自己还没有去过,但您可能会发现 # 是忽略的单词/符号之一...