MySQL:可以获取全文索引的单词吗?

MySQL:可以获取全文索引的单词吗?,mysql,full-text-search,full-text-indexing,Mysql,Full Text Search,Full Text Indexing,我喜欢按相关性对BOOLEAN通配符搜索进行排序。作为BOOLEAN我们需要使用NATURAL模式来获得权重分数。但是NATURAL不支持运算符,因此不会返回任何结果(分数=0): 我可以使用像“%tunin%”这样的,但这不会给我评分 问题 是否可以获取通过通配符搜索找到的全文索引中的所有单词 例如: mysql>SELECT fulltext_index_words FROM topics_search WHERE MAT

我喜欢按相关性对
BOOLEAN
通配符搜索进行排序。作为
BOOLEAN
我们需要使用
NATURAL
模式来获得权重分数。但是
NATURAL
不支持运算符,因此不会返回任何结果(分数=0):

我可以使用像“%tunin%”这样的
,但这不会给我评分

问题
是否可以获取通过通配符搜索找到的全文索引中的所有单词

例如:

mysql>SELECT
        fulltext_index_words
    FROM
        topics_search
    WHERE
        MATCH(topic_text) AGAINST('tunin*' IN BOOLEAN MODE)
+----------------------+
| fulltext_index_words |
+----------------------+
| tuning               |
| tunings              |
+----------------------+
2 rows in set (1 ms)

这种行为非常特定于MyISAM与MySQL<5.7的组合,因此您可能只需要升级或切换到InnoDB(如果您还没有升级到InnoDB,那么链接的问题已经有5年半的历史了)。如果你不能,你可能想解释你的问题,因为写你自己的权重函数可能比强迫全文搜索更容易(这可能不是你认为你得到的)。但是要回答你的问题:不,没有函数可以给你这些单词,但是你可以写一个(例如,通过逐个字符检查输入字符串)。很好。不知道5.7返回分数:引用此链接源作为答案发布您的评论,我将接受。不,它是在5.6:P.s中添加的。“仅升级”在我的环境中是不可能的。我们使用稳定的Debian 8。Debian9发布后,我希望我们能从MySQL5.6中获益。
mysql>SELECT
        fulltext_index_words
    FROM
        topics_search
    WHERE
        MATCH(topic_text) AGAINST('tunin*' IN BOOLEAN MODE)
+----------------------+
| fulltext_index_words |
+----------------------+
| tuning               |
| tunings              |
+----------------------+
2 rows in set (1 ms)