【问题标题】:MySQL Fulltext separate digits and letters?MySQL全文分隔数字和字母?
【发布时间】:2014-01-21 09:10:04
【问题描述】:

假设我们在文本中有“ABCD1234EF”字样。现在要找到它,我必须匹配确切的单词。目标是通过“ABCD1234EF”、“ABCD”、“1234”或“EF”字符串找到它。不是“CD12”或类似的东西。参数 'ft_min_word_len' 设置为 1。

创建第二列并在那里存储拆分值是唯一的选择吗?能不能用 MySQL 做?

我在 MySQL 网站 http://dev.mysql.com/doc/refman/5.1/en/full-text-plugins.html 上找到了一些东西。但它带来的问题多于解决的问题。

  • 它会取代原来的mysql解析器吗?
  • 如何在Windows机器上编译?

【问题讨论】:

    标签: mysql plugins full-text-search


    【解决方案1】:

    我认为最简单的方法是使用 SQL 将您的输入字符串分成三个单独的列(也许基于 something like this)。

    编写您自己的全文插件实质上将此逻辑移至较低的附加值(reference):

    主要的解析函数simple_parser_parse()作为内置全文解析器的替代品,因此需要将文本拆分为单词,并将每个单词传递给服务器。

    这也回答了您的第一个项目符号问题:此过程替换了 全文解析器(不是 SQL 解析器,如果这是您的问题)。

    MySQL compilation instructions 提供特定于 Windows 的步骤。

    【讨论】:

    • 确实,纯 SQL 方法是理想的。但我实际上有两列需要索引。使用多个单词,在所有可能的位置上都有数字的值。没有适用的规则。现在我尝试在没有适当工具的情况下编译插件。还在学习。仍然首选类似 SQL 触发器的解决方案。任何其他非 SQL 解决方案也可以肯定地工作,但我试图避免它,因为它需要在我的应用程序中进行大量更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 2014-12-17
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多