2011-06-10 52 views
1

我试图想出一个匹配“猴子”,但忽略/不考虑“猴业务”匹配的mysql布尔搜索。Mysql全文布尔忽略短语

下面的东西是一般的想法,但它否定了价值。我需要它不匹配与“猴子生意”行,除非他们也有“猴子”没有“业务”之后的文本其他地方。

SELECT * FROM table 
MATCH (title) against ('+monkey ~"monkey business"' IN BOOLEAN MODE); 

这可能吗?预先感谢您提供的任何帮助!我意识到这可以通过更好的搜索引擎完成,目前全文是我可以使用的。

+0

你可能有幸在dba.stackexchange.com上提出这个问题。 – 2011-06-10 03:03:53

+0

谢谢凯文我会试试看。 – Matt 2011-06-10 04:07:11

回答

0

我测试了这一点,它的工作原理:

SELECT * FROM table 
WHERE MATCH (title) against ('+monkey' IN BOOLEAN MODE) 
AND NOT MATCH (title) against ('+"monkey business"' IN BOOLEAN MODE); 

P.S我也试过布尔否定运算符:

AND MATCH (title) against ('-"monkey business"' IN BOOLEAN MODE) 

,但没有奏效。

+0

这并不完全是我所追求的。只要“猴子”出现在同一行的其他地方而没有尾随的“商业”,匹配“猴子商业”的行仍然应该匹配“猴子”。所以“这是猴子生意”不应该被匹配,而是“猴子生意是为了猴子男人”。感谢您的回复! – Matt 2011-06-10 06:29:07