【问题标题】:MySQL FTS boolean mode operator customizingMySQL FTS 布尔模式运算符自定义
【发布时间】:2013-05-07 03:47:26
【问题描述】:

我正在使用 MySQL 5.6.10 的 InnoDB FTS,并希望更改布尔运算符的默认行为。

注意在实现这个特性时,MySQL 使用了有时被称为隐含布尔逻辑的东西,其中

[+] 代表与

[-] 代表 NOT

[无运算符]暗示或

我想要的行为:

  • [无运算符] 暗示 AND
  • [|] 代表或

ft_boolean_syntax

命令行格式 --ft_boolean_syntax=name 选项文件 格式 ft_boolean_syntax 变量名 ft_boolean_syntax 变量 范围全局动态变量是允许的值类型字符串 默认 +->

默认变量值为'+ ->

运算符函数由字符串中的位置决定。

替换值必须是 14 个字符。

每个字符都必须是 ASCII 非字母数字字符。

第一个或第二个字符必须是空格。

不允许重复,除了短语引用运算符 位置 11 和 12。这两个字符不需要是 相同,但可能只有它们两个。

位置 10、13 和 14(默认设置为“:”、“&”和 “|”) 保留用于将来的扩展。

所以我尝试将 ft_boolean_syntax 更改为 ' |->

我做错了什么?

【问题讨论】:

    标签: mysql search boolean full-text-search


    【解决方案1】:

    似乎 InnoDB FTS 尚未成熟。使用 MySQL 5.6.10 和 MyISAM,自定义的 ft_boolean_syntax 可以正常工作。布尔 OR 必须表示为 '|word1 |word2',即 'word1 | word2' 将产生一个 AND。

    【讨论】:

      猜你喜欢
      • 2011-09-05
      • 2015-08-22
      • 1970-01-01
      • 2011-04-10
      • 2011-02-07
      • 2011-04-20
      • 2011-09-27
      • 2011-03-27
      相关资源
      最近更新 更多