【问题标题】:Regular expression for search query like: word1 * (word2 -word3 -word4) * word5搜索查询的正则表达式,例如:word1 * (word2 -word3 -word4) * word5
【发布时间】:2011-09-11 07:44:44
【问题描述】:

问题是,除了字符串具体部分中的某些单词之外,搜索单词序列的正则表达式是什么?

例如,对于搜索请求:

word1 * (word2 -word3 -word4) * word5

(其中*表示任意数量的任意单词,-word表示不包含单词)

匹配的字符串是:

word1 word99 word2 word98 word97 word5

word1 word2 word5

不匹配:

word1 word99 word2 word98 WORD4 word97 word5

word1 WORD3 word2 word5

附:它用于在 MySQL 中使用 REGEXP 运算符进行搜索。

【问题讨论】:

标签: mysql regex


【解决方案1】:

您将无法使用 REGEXP 执行此操作,您应该在列上创建一个 FULLTEXT 索引并执行 FULLTEXT searches,执行搜索 IN BOOLEAN MODE 将为您提供所需的所有功能。

【讨论】:

  • 我不能使用全文搜索,因为 MySQL 表在 InnoDB 引擎上。无论如何,使用 FULL TEXT 不是问题,因为没有我需要的一些 REGEXP 功能。
【解决方案2】:

尝试使用 Sphinx,它具有必需的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多