MySQL FTS布尔模式运算符自定义

时间:2013-05-13 07:04:54

标签: mysql search boolean full-text-search

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

  

注意在实现此功能时,MySQL使用有时被称为隐含布尔逻辑的内容,其中

     

[+]代表AND

     

[ - ]代表NOT

     

[no operator]暗示OR

我想要的行为:

  • [no operator]暗示AND
  • [|]代表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。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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