我正在使用MySQL 5.6.10的InnoDB FTS,并希望更改布尔运算符的默认行为。
注意在实现此功能时,MySQL使用有时被称为隐含布尔逻辑的内容,其中
[+]代表AND
[ - ]代表NOT
[no operator]暗示OR
我想要的行为:
ft_boolean_syntax
命令行格式--ft_boolean_syntax = name选项 - 文件 格式ft_boolean_syntax变量名ft_boolean_syntax变量 范围全局动态变量是允许的值类型字符串 默认+ - ><()〜*:“”&布尔支持的运算符列表 使用IN BOOLEAN MODE执行全文搜索。见章节 12.9.2,“布尔全文搜索”。
默认变量值为'+ - ><()〜*:“”& |'。改变的规则 值如下:
操作员功能由字符串中的位置决定。
替换值必须为14个字符。
每个字符必须是ASCII非字母数字字符。
第一个或第二个字符必须是空格。
除了引用运算符之外,不允许重复 位置11和12.这两个字符不是必需的 同样,但他们是唯一可能的两个。
位置10,13和14(默认设置为“:”,“&”,和 “|”)保留用于将来的扩展。
所以我尝试将ft_boolean_syntax更改为'| - ><()〜*:“”& +'但这对我不起作用。没有给定的运算符仍然暗示OR。
我做错了什么?
答案 0 :(得分:0)
似乎InnoDB FTS尚未成熟。使用MySQL 5.6.10和MyISAM,定制的ft_boolean_syntax可以正常工作。布尔OR必须表示为'| word1 | word2',即'word1 | word2'将生成一个AND。