成都创新互联网站制作重庆分公司

mysql全文检索怎么做

MySQL全文检索怎么做?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

公司主营业务:成都网站设计、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出瓦房店免费做网站回馈大家。

mysql做全文检索的方法:

     1、自然语言检索:

IN NATURAL LANGUAGE MODE

     2、布尔检索:

 IN BOOLEAN MODE

          剔除一半匹配行以上都有的词,譬如说,每个行都有this这个字的话,那用this去查时,会找不到任何结果,这在记录条数特别多时很有用,

          原因是数据库认为把所有行都找出来是没有意义的,这时,this几乎被当作是stopword(中断词);但是若只有两行记录时,是啥鬼也查不出来的,

          因为每个字都出现50%(或以上),要避免这种状况,请用IN BOOLEAN MODE。

       ● IN BOOLEAN MODE的特色: 

          ·不剔除50%以上符合的row。 

          ·不自动以相关性反向排序。 

          ·可以对没有FULLTEXT index的字段进行搜寻,但会非常慢。 

          ·限制最长与最短的字符串。 

          ·套用Stopwords。

       ● 搜索语法规则:

         +   一定要有(不含有该关键词的数据条均被忽略)。 

         -   不可以有(排除指定关键词,含有该关键词的均被忽略)。 

         >   提高该条匹配数据的权重值。 

         <   降低该条匹配数据的权重值。

         ~   将其相关性由正转负,表示拥有该字会降低相关性(但不像 - 将之排除),只是排在较后面权重值降低。 

         *   万用字,不像其他语法放在前面,这个要接在字符串后面。 

         " " 用双引号将一段句子包起来表示要完全相符,不可拆字。

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

         + 表示AND,即必须包含。- 表示NOT,即必须不包含。即:返回记录必需包含 apple,且不能包含 banner。

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

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

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

         返回记录必须包含apple,同时banana可包含也可不包含,若包含的话会获得更高的权重。

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

         ~ 是我们熟悉的异或运算符。返回记录必须包含apple,若也包含了banana会降低权重。

         但是它没有 +apple -banana 严格,因为后者如果包含banana压根就不返回。

 SELECT * FROM articles WHERE MATCH (title,content) AGAINST ('+apple +(>banana 

         返回必须同时包含“apple banana”或者必须同时包含“apple orange”的记录。

         若同时包含“apple banana”和“apple orange”的记录,则“apple banana”的权重高于“apple orange”的权重。

看完上述内容,你们掌握mysql全文检索怎么做的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前标题:mysql全文检索怎么做
文章出自:http://cxhlcq.com/article/jgsgei.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部