【问题标题】:Is MySQL FULLTEXT best solution for partial words?MySQL FULLTEXT 是部分单词的最佳解决方案吗?
【发布时间】:2012-04-22 23:59:06
【问题描述】:

我有一个 MySQL MyISAM 表,其中包含描述机场的条目。此表包含 3 个 varchar 列 - 代码、名称和标签。

code 是指机场的代码(如 JFK 和 ORD),name 是指机场的名称(John F Kennedy 和 O'Hare),标签指定与机场相关联的标签的分号分隔列表(如 NYC ;纽约;和芝加哥;)。

我需要能够通过代码、名称或标签来查找机场(用于自动完成),因此我在(代码、名称、标签)上设置了 FULLTEXT 索引。

到目前为止,我遇到了两个 FULLTEXT 问题,使我无法使用它:
1. 没有办法进行部分匹配——只有后缀匹配(这是真的吗?)
2. 在要匹配的术语中指定句点 ('.') 时,匹配的工作方式会有所不同。我假设这个时期正在以一种特殊的方式被解析。例如,在 N.Y.C 上进行 FULLTEXT 搜索将不会返回 JFK,尽管在 New York 上进行相同的搜索会

有没有办法克服这些障碍?否则,我应该查看like 匹配,还是完全不同的存储引擎?谢谢!

【问题讨论】:

  • 全文是为自然语言设计的。它在代码或缩写上表现不佳。我的建议是你将这两种方法结合起来。
  • 是的。 FULLTEXT UNION like 似乎效果最好。谢谢!

标签: mysql partial full-text-search


【解决方案1】:

我想出的最佳解决方案是同时使用 FULLTEXT 和 like 匹配,并使用 UNION 作为结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 2017-06-26
    • 2020-04-12
    • 1970-01-01
    相关资源
    最近更新 更多