【问题标题】:mysql partial indexing, reverse indexingmysql部分索引,反向索引
【发布时间】:2012-06-12 23:56:18
【问题描述】:

我有一张包含单词列表的表格。

单词 VARCHAR(16)

我需要创建一个反向索引。 IE。单词“apple”将索引为“elppa”,单词“banana”索引为“ananab”等等。

另外,是否可以索引单词的一部分?例如,跳过第一个/最后 1 或 2 个字符:

苹果(苹果) anana(香蕉)

这些事情可能吗?

【问题讨论】:

  • 添加一个带有反向文本的新列并在那里建立索引。

标签: mysql database indexing


【解决方案1】:

您可以在受前缀长度限制的字段上创建索引,这意味着只会考虑前 n 个字符,但您不能使用任意的开始和结束位置来执行此操作。在 mysql 的 CREATE INDEX 文档页面上阅读更多相关信息。

在这种情况下,我只需创建另一列,使用 mysql 的REVERSE 函数将其填充并在其上创建索引,这样您就可以获得一个字段来搜索原始单词的反面。

其他数据库(例如 Postgresql)允许您使用 index an expression,这将有效地允许您索引 reverse(col_name) 而无需创建额外的列。所以这是可能的,只是现在不使用mysql。 (因为我相信版本 9 potgresql 有 reverse() native)

【讨论】:

猜你喜欢
  • 2017-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 1970-01-01
  • 2011-10-17
  • 2021-12-01
相关资源
最近更新 更多