Mysql MATCH AGAINST选项:精确短语以及额外的单词

时间:2014-03-25 21:22:24

标签: mysql django full-text-search match match-against

我正在尝试增强名为django-watson的第三部分(真棒)django框架,我目前需要通过一个迄今为止未知的mysql选项, MATCH(...)AGAINST( ...)

所以,我已经知道如何检索一个确切的短语,正在做:

SELECT * 
FROM patient_db 
WHERE MATCH ( Name, id_number ) 
AGAINST ('"exact phrase"' IN BOOLEAN MODE);

我也知道如何检索包含列表中单词的结果:

SELECT * 
FROM patient_db 
WHERE MATCH ( Name, id_number ) 
AGAINST ('+keyword1 +keyword2' IN BOOLEAN MODE);

但是我需要第三个选项,即混合上面引用的两个选项。我想做像谷歌搜索这样的事情:"确切的短语" + keyword1 + keyword2

_ PS:当我搜索"确切的短语" -keyword1 它完全符合要求_

任何想法?

1 个答案:

答案 0 :(得分:2)

试试这个。

  SELECT * 
  FROM patient_db 
  WHERE MATCH ( Name, id_number ) 
        AGAINST ('+keyword1 +keyword2' IN BOOLEAN MODE)
  OR    MATCH ( Name, id_number ) 
        AGAINST ('"exact phrase"' IN BOOLEAN MODE)