首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未来校对全文搜索

未来校对全文搜索
EN

Stack Overflow用户
提问于 2010-07-19 22:47:41
回答 2查看 70关注 0票数 3

我在一个表上有一个名为cart_product_fti的全文索引

每当我使用它时,我必须准确地列出索引中的所有字段:

代码语言:javascript
复制
MATCH (foo,bar,etc)

我的想法是,如果后来我决定在索引中添加/删除一个字段,所有的脚本都将不得不更新,否则它们将被破坏。

因此,我想知道是否有一种方法可以获得索引中所有字段的列表,然后将该列表插入到我的MATCH()中,以便在全文索引发生更改时不必更新该列表。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-19 22:58:23

可能的解决方案:

  • 就做这件事吧。一个结构合理的项目可能只有1到2个具有特定查询/数据关系的类或文件,所以它不应该有那么多工作。
  • 会为每个查询一次又一次地查询information_schema.statistics,以便动态地构建查询(几乎不会对在表中进行搜索的存储过程执行efficient).
  • Define操作,在这种情况下,更改表/全文索引布局只需要您更改该过程一次。

编辑:由于某种原因,key_column_usage似乎没有包含全文引用,我们必须求助于information_schema.statistics表?

票数 1
EN

Stack Overflow用户

发布于 2010-07-19 23:03:31

要列出索引中的所有字段,可以使用SQL命令SHOW INDEXES FROM <table>

它将列出表中的每个索引,并且对于包含多个列的索引,每列将有一个条目。您应该只在适当缓存索引的列列表的情况下使用该解决方案。

在您的情况下,另一种解决方案是将列表存储在配置文件中,并确保在数据库结构发生变化时更新配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3282134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档