【问题标题】:How do I add a column to an existing FULLTEXT index?如何将列添加到现有的 FULLTEXT 索引?
【发布时间】:2015-04-27 23:26:33
【问题描述】:

我在 MySql 数据库中的表上创建了 FULLTEXT 索引,并在这样做时遗漏了一列。我一直在尝试弄清楚如何添加此列,以便可以将其与此表中已编入索引的其他列一起进行搜索。

我已经搜索了 SO 和网络,但没有找到任何地方。我尝试进入 phpMyAdmin,当您单击表格然后查看结构时,在右侧一直有一个下拉菜单显示“更多”。这有一个“全文”选项,似乎将全文索引添加到列,所以我这样做了,但它仍然不允许我搜索列。

我是否在此列中添加了 FULLTEXT?无论哪种方式,我该如何让它发挥作用?

【问题讨论】:

  • 先删除索引,然后用所有列重新创建它?
  • 我需要全文索引列的名称才能做到这一点,对吧?但它没有出现在 phpMyAdmin 中。我如何找到它?我今天早些时候尝试用谷歌搜索,但找不到任何有用的东西。找到这个:(stackoverflow.com/questions/16280918/…),但它不适用于 MySQL。

标签: php mysql innodb full-text-indexing


【解决方案1】:

对于 SQL Server 用户,可以这样做:

ALTER FULLTEXT INDEX ON [table_name] ADD ([column_name])

【讨论】:

    【解决方案2】:
    ALTER TABLE foo DROP FULLTEXT old_ft_index_name, ADD FULLTEXT(this, that);
    

    【讨论】:

    • 他用的是phpMyAdmin,不知道能不能直接执行。
    • 我确实有能力直接运行 SQL 查询,但是正如我上面问的,我如何找到现有全文索引的名称?
    • SHOW CREATE TABLE foo;
    • 谢谢!我已经这样做了,但它不会全部显示。没有意识到还有另一个按钮可以显示所有内容(“打印视图(带有全文)”)。现在我可以看到标题等。为了记录,“这个”和“那个”参数应该是什么?这是我列出要索引的列的地方吗?
    • 显然,当我选择我提到的按钮时,我正在创建一列的全文索引,但它与其他索引不同。为了其他有类似问题的人,这是有效的:ALTER TABLE foo DROP INDEX bar1,DROP INDEX bar2,DROP INDEX bar3,ADD FULLTEXT INDEX (baz1baz2 ,baz3,baz4,etc)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 2011-07-24
    • 2012-10-25
    • 1970-01-01
    • 2012-12-23
    • 2016-11-08
    相关资源
    最近更新 更多