mysql全文模糊搜索MATCH AGAINST方法示例

全文检索语法

1
SELECT * FROM articles WHERE MATCH (title,body)   AGAINST ('+apple -banana' IN BOOLEAN MODE);

表示AND,即必须包含。- 表示NOT,即不包含。

1
SELECT * FROM articles WHERE MATCH (title,body)   AGAINST ('apple banana' IN BOOLEAN MODE);

apple和banana之间是空格,空格表示OR,即至少包含apple、banana中的一个。

1
SELECT * FROM articles WHERE MATCH (title,body)   AGAINST ('+apple banana' IN BOOLEAN MODE);

必须包含apple,但是如果同时也包含banana则会获得更高的权重。

1
SELECT * FROM articles WHERE MATCH (title,body)   AGAINST ('+apple ~banana' IN BOOLEAN MODE);

 ~ 是我们熟悉的异或运算符。返回的记录必须包含apple,但是如果同时也包含banana会降低权重。 但是它没有 +apple -banana 严格,因为后者如果包含banana压根就不返回。

1
SELECT * FROM articles WHERE MATCH (title,body)   AGAINST ('+apple +(>banana <orange)' IN BOOLEAN MODE);

返回同时包含apple和banana或者同时包含apple和orange的记录。但是同时包含apple和banana的记录的权重高于同时包含apple和orange的记录。

参考:https://www.jb51.net/article/31904.htm

posted @ 2023-02-16 14:13  飞鹰之歌  阅读(439)  评论(0)    收藏  举报