当前位置: 首页 > news >正文

武汉百度推广设计成都移动seo

武汉百度推广设计,成都移动seo,大型网站建设招商,南京市住房建设网站brief InnoDB存储引擎从MySQL 5.6开始支持全文本搜索。具体来说,MySQL使用InnoDB存储引擎的全文本搜索功能称为InnoDB全文本搜索(InnoDB Full-Text Search)。InnoDB全文本搜索支持标准的全文本搜索查询语法和多语言分词器,因此可…

brief

InnoDB存储引擎从MySQL 5.6开始支持全文本搜索。具体来说,MySQL使用InnoDB存储引擎的全文本搜索功能称为InnoDB全文本搜索(InnoDB Full-Text Search)。InnoDB全文本搜索支持标准的全文本搜索查询语法和多语言分词器,因此可以处理包括汉字在内的多种字符集。


LIKE关键字,它利用通配操作符匹配文本能够查找包含特殊值或部分值的行(不管这些值位于列
内什么位置)。

使用正则表达式,可以编写查找所需行的非常复杂的匹配模式。

但是他们有限制:

  • 性能——通配符和正则表达式匹配通常要求MySQL尝试匹配表中所有行(而且这些搜索极少使用表索引)。因此,由于被搜索行数不断增加,这些搜索可能非常耗时。
  • 明确控制——使用通配符和正则表达式匹配,很难(而且并不总是能)明确地控制匹配什么和不匹配什么。

为了进行全文本搜索,必须索引被搜索的列,而且要随着数据的改变不断地重新索引。
在索引之后, SELECT可与Match()和Against()一起使用以实际执行搜索。

一般在创建表时启用全文本搜索。 CREATE TABLE语句接受FULLTEXT子句,它给出被索引列的一个逗号分隔的列表。

create table productnotes
(
note_id int not NULL auto_increment,
prod_id char(10) not NULL,
note_date datetime not NUll,
note_text text NUll,
primary key(note_id),
fulltext(note_text)
)ENGINE=InnoDB;

这些列中有一个名为note_text的列,为了进行全文本搜索,MySQL根据子句FULLTEXT(note_text)的指示对它进行索引。
这里的FULLTEXT索引单个列,如果需要也可以指定多个列。
在定义之后, MySQL自动维护该索引。在增加、更新或删除行时,索引随之自动更新。

进行全文本搜索

在索引之后,使用两个函数Match()和Against()执行全文本搜索
其中Match()指定被搜索的列, Against()指定要使用的搜索表达式。

select note_text from productnotes
where match(note_text) against('rabbit');# 可以试试这句口令
select note_text, match(note_text) against('rabbit') AS rank;

Match(note_text)指示MySQL针对指定列进行搜索, Against(‘rabbit’)指定词rabbit作为搜索文本



使用查询扩展

比如,你想找出所有提到anvils的注释。只有一个注释包含词anvils,但你还想找出可能与你的搜索有关的所有其他行,即使它们不包含词 anvils。

这也是查询扩展的一项任务。在使用查询扩展时, MySQL对数据和索引进行两遍扫描来完成搜索:

  • 首先,进行一个基本的全文本搜索,找出与搜索条件匹配的所有行;
  • 其次, MySQL检查这些匹配行并选择所有有用的词(我们将会简要地解释MySQL如何断定什么有用,什么无用)。
  • 再其次, MySQL再次进行全文本搜索,这次不仅使用原来的条件,而且还使用所有有用的词。
select note_text from productnotes
where match(note_text) against('rabbit' with query expansion);


布尔文本搜索

即 使 没 有 定 义FULLTEXT索引,也可以使用它。但这是一种非常缓慢的操作(其性能将随着数据量的增加而降低)。

# 此全文本搜索检索包含词rabbit的所有行
select note_text from productnotes
where match(note_text) against('rabbit' IN BOLLEAN MODE);# 匹配包含rabbit但不包含任意以rope开始的词的行
select note_text from productnotes
where match(note_text) against('rabbit -rope*' IN BOLLEAN MODE);

在这里插入图片描述

全文本搜索注意事项

  • 在索引全文本数据时,短词被忽略且从索引中排除。短词定义为那些具有3个或3个以下字符的词(如果需要,这个数目可以更改)。
  • MySQL带有一个内建的非用词( stopword)列表,这些词在索引全文本数据时总是被忽略。如果需要,可以覆盖这个列表
  • 许多词出现的频率很高,搜索它们没有用处(返回太多的结果)。因此, MySQL规定了一条50%规则,如果一个词出现在50%以上 的行中,则将它作为一个非用词忽略。 50%规则不用于IN BOOLEAN MODE。
  • 如果表中的行数少于3行,则全文本搜索不返回结果(因为每个词或者不出现,或者至少出现在50%的行中)。
  • 忽略词中的单引号。例如, don’t索引为dont。
  • 不具有词分隔符(包括日语和汉语)的语言不能恰当地返回全文本搜索结果。
http://www.shuangfujiaoyu.com/news/55184.html

相关文章:

  • 一个网站开发团队的人员配置百度网站怎么申请注册
  • 自助建站上建的网站免费吗搭建一个网站平台需要多少钱
  • 百度seo网站优化怎么做推广广告
  • 有哪几个平台做网站2024年3月新冠高峰
  • 做外贸都做哪些网站好免费下载百度权重5的网站能卖多少钱
  • 宿州做企业网站自助建站申请
  • 做技术分享网站有哪些代刷网站推广快速
  • 做淘宝哪个女装批发网站比较好免费长尾词挖掘工具
  • 银川市做网站的公司抖音seo优化公司
  • 池州专业网站建设怎么样品牌推广战略
  • 摄影剪辑培训班优化设计五年级下册数学答案
  • 购买域名流程电子商务seo实训总结
  • 青岛网站空间seo排名优化是什么意思
  • 做手机网站和pc如何做360外链
  • 上海网站建设 seo临沂今日头条新闻最新
  • 网站建设CEO线上营销
  • 自己做图片网站seo网站排名全选
  • 销售新网站推广策略2024年新冠疫情最新消息今天
  • 怎么做免费视频网站吗营销推广方案
  • wordpress 4 编辑器seo关键词排名优化联系方式
  • 金融网站建设报价方案重庆seo俱乐部
  • 网站建设公司销售微博搜索引擎优化
  • 建个私人网站怎么做搜索竞价
  • 做网站需要哪些技术免费网站推广产品
  • wordpress chastity百度seo和谷歌seo有什么区别
  • 自己怎么样做游戏网站如何自己制作网站
  • python做网站项目站长工具 忘忧草
  • 帮做论文网站吗网络营销主要干什么
  • 网站请人做要多少钱bt种子搜索
  • 松滋网络推广杭州seo价格