MySQL match,mysql against

  MySQL match,mysql against

  Mysql全文搜索匹配…反对使用菜刀博客

  Mysql全文搜索匹配的使用…2011年5月2日发布于IT技术,MysqlNo评论

  前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索。假设数据表名为post,有三列:id、title和content。Id是自增序列号,标题是varchar,内容是文本。向内容添加全文索引。

  mysql全文搜索有三种模式:

  第一,自然语言搜索。这是mysql默认的全文搜索方式。sql示例:

  [代码=普通]

  selectid,titlefrompostwhere match(content)反( searchkeyword )

  或者使用自然语言显式声明搜索方法。

  [代码=普通]

  selectid,titlefrompostwhere match(content)反对( search keyword in naturallanguagemode)

  因为自然语言搜索模式是默认模式,所以可以省略声明模式的“INNATURALLANGUAGEMODE”部分。

  自然语言搜索模式的特点;

  忽略停用词。英语中经常出现的and/or/to等词,被认为没有实际搜索的意义。搜索这些词不会得到任何结果。如果一个词在数据集中频繁出现50%以上,也会被认为是停用词,所以如果数据库中只有一行数据,无论你怎么搜索全文都得不到结果。搜索结果都有带关联度的数据,返回的结果自动按关联度从高到低排序。只搜索独立的词,不考虑词的局部匹配。例如,在搜索box时,boxing不会成为搜索目标。第二,布尔搜索。这种搜索方式的特点是没有自然搜索模式下的50%法则。即使数据集中频繁出现的词的频率超过50%,也会作为搜索目标进行搜索,并返回结果。而且,单词的局部匹配也会作为目标进行搜索。Sql示例

  [代码=普通]

  selectid,titlefrompostwhere match(content)AGAINST( search keyword inbooleanmode)

  第三,带磁带查询扩展的自然语言搜索。[代码=普通]

  selectid,titlefrompostwhere match(content)反( search keyword inboleanmodewithexpansion)

  我暂时不明白这种模式。

  我在实际使用中也发现了以下细节:

  布尔搜索必须指定返回结果的排序方式,它不会像自然语言搜索一样自动按照相关性对结果进行排序。即使是布尔搜索,也不会检索长度小于等于3的单词,因为mysql有一个系统变量FT_MIN_WORD_LEN,它指定了全文检索时可接受的最小单词长度,默认值为4。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • pymysql菜鸟教程,pymysql 使用
  • pymysql菜鸟教程,pymysql 使用,pymysql模块使用简介与示例
  • mysql锁实现,mysql锁算法
  • mysql锁实现,mysql锁算法,MySQL锁机制与用法分析
  • mysql连接报错10061,mysql连接错误10060
  • mysql连接报错10061,mysql连接错误10060,MYSQL无法连接 提示10055错误的解决方法
  • mysql连接报10060错误,mysql连接报错10055
  • mysql连接报10060错误,mysql连接报错10055,MySQL连接异常报10061错误问题解决
  • mysql辅助索引和主键索引,mysql 主键 外键 索引
  • mysql辅助索引和主键索引,mysql 主键 外键 索引,MySQL索引之主键索引
  • MySQL语句大全,mysql常见语句总结
  • MySQL语句大全,mysql常见语句总结,MySQL语句整理及汇总介绍
  • mysql触发器的使用方法实验报告,mysql中触发器的使用
  • 留言与评论(共有 条评论)
       
    验证码: