mysql - 列出由 Innodb 全文索引的单词

标签 mysql full-text-search innodb full-text-indexing

在 Mysql (Innodb) 中我创建了一个 FULL-TEXT 索引。

是否有一个查询可以用来检索全文索引中包含的所有单词的列表?

我的想法是使用一个文本字段来保存 TAGS 列表的 json 转储。

然后我可以使用全文查询来检索匹配标签的行(它有效)。

剩下的问题是检索索引标签列表以实现建议和自动完成标签输入字段。

最佳答案

设置innodb_ft_aux_table mysql 服务器变量在运行时到包含全文索引的 innodb 表。这将导致 INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE被填充。此表包含一个 word 列,其中包含

word extracted from the text of the columns that are part of a FULLTEXT

您可以使用选择查询从该表中获取单词列表。但是,建议仅将此设置用于测试/调试目的,因此我不会真正在实时环境中使用它。

这种方法的另一个问题是被索引的单词的最小长度和停用词列表。如果标签短于最小字长,则不会被索引。如果标签名称在停用词列表中,则不会被索引。

老实说,我宁愿创建一个单独的表来维护标签列表,并将其用作自动完成的来源。

关于mysql - 列出由 Innodb 全文索引的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34945523/

相关文章:

Php addslashes sql 注入(inject)仍然有效?

用于德语变音符号的 MySQL UTF8 排序规则

java - hibernate 搜索不区分大小写的搜索不能正确地与 LowerCaseFilterFactory 配合使用

mysql - FOR UPDATE 似乎没有锁定 MySql InnoDB 中的行

mysql - 服务中启动MySQL时出现错误1067

php - 当函数以数组形式返回时迭代记录集

php - 如何使用变量名选择表名

elasticsearch - Elasticsearch-聚合多层次结构

mongodb - MongoDB 中的全文搜索和倒排索引

mysql - 每个自定义列的 Innodb 自动增量,并发性差