MySQL 全文检索

1、自然语言全文检索:

MATCH(productline)  AGAINST('Classic,Vintage' IN NATURAL LANGUAGE MODE);

同时包含Classic,Vintage的行将先被召回,然后才返回只包含单个词的行

2、Boolean MODE (布尔全文检索) 

+包括,这个词必须存在。
-排除,这个词不能存在。
>包括并增加排名值。
<包括并降低排名值。
()将单词分组成子表达式(允许将其包括,排除,排序等作为一个组)。
~否定一个词的排名值。
*通配符,在结尾的单词
“”定义一个短语(与单个单词列表相反,整个短语匹配包含或排除)。

下示例说明如何在搜索查询中使用布尔全文运算符:

要搜索包含两个词中至少一个词的行:mysqltutorial,可使用:mysql tutorial;(类似自然语言查询?)
要搜索包含两个单词的行:mysqltutorial,可使用:+mysql +tutorial
要搜索包含单词“mysql”的行,但为含有“tutorial”的行排列较高的排名:可使用:+mysql tutorial
要搜索包含单词“mysql”而不是“tutorial”的行,可使用:+mysql -tutorial
要搜索包含单词“mysql”的行,如果包含单词“tutorial”,则将行排列,可使用:+mysql ~tutorial
要搜索包含单词“mysql”和“tutorial”,或“mysql”和“training”的行以任何顺序排列,但将包含“mysql tutorial”的行高于“mysql training”。可使用:+mysql +(>tutorial <training)

要查找包含以“my”开头的单词的行,例如“mysql”,“myspace”等,请使用以下命令:my*

3、MySQL查询扩展

在某些情况下,用户希望根据他们拥有的知识来搜索信息。用户使用他们的知识来定义关键字来搜索信息,通常这些关键字太短。

为了帮助用户根据很短的关键字找到他们想要的内容,MySQL全文搜索引擎引入了一个称为查询扩展的概念。

查询扩展用于根据自动相关性反馈(或盲查询扩展)来扩大全文搜索的搜索结果。 从技术上讲,当使用查询扩展时,MySQL全文搜索引擎将执行以下步骤:

首先、MySQL全文搜索引擎会查找与搜索查询匹配的所有行

其次,它检查搜索结果中的所有行,并找到相关词。

第三,它再次执行搜索,但是基于相关词而不是用户提供的原始关键词来查询匹配。

从应用程序的角度来看,当搜索结果太少时,可以使用查询扩展。再次执行搜索,但通过查询扩展为用户提供与他们正在查找的内容相关和相关的更多信息。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值