Mysql fulltext boolean ignore phrase
I'm trying to come up with a mysql boolean search that matches "monkey" but ignores / doesn't take into account an matches of "monkey business".
Something like the following is the general idea but it negates the value. I need it to not match rows with "monkey business" unless they also have "monkey" without "business" after it elsewhere in the text.
SELECT * FROM table
MATCH (title) against ('+monkey ~"monkey business"' IN BOOLEAN MODE);
Is it possible? Thanks in advance for any help you can give! I realise this could be done with better search engines开发者_StackOverflow, at the moment fulltext is all I can use.
I tested this and it works:
SELECT * FROM table
WHERE MATCH (title) against ('+monkey' IN BOOLEAN MODE)
AND NOT MATCH (title) against ('+"monkey business"' IN BOOLEAN MODE);
p.s I also tried the boolean negation operator:
AND MATCH (title) against ('-"monkey business"' IN BOOLEAN MODE)
but it didn't work.
精彩评论