当前位置: 首页 > 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.hkea.cn/news/318074/

相关文章:

  • 美观网站建设物美价廉seo网站优化专员
  • 网站设计应该怎么做推广软文代写
  • 网站建设工作室发展百度收录教程
  • 没有网站 可以做百度口碑吗成都网站制作
  • 医院系统网站建设百度宁波营销中心
  • 网站劫持代码杭州互联网公司排名榜
  • 做网站找哪个部门吸引人的推广标题
  • 网站制作软件名字线做竞价推广代运营公司
  • avada如何做中英文网站沈阳百度推广排名优化
  • 做网站品长沙网络营销公司排名
  • b2b商贸网站环球网最新消息疫情
  • wordpress next主题什么是seo教程
  • 如何规划一个网站快手秒赞秒评网站推广
  • 中国网站开发网站seo需要用到哪些工具
  • 织梦做的网站首页出现空白网页平台做个业务推广
  • 备案做电影网站吗yandx引擎入口
  • 网站双倍浮动百度账号登陆入口
  • 聊城市网站建设网站推广排名
  • 帝国新闻网站模板百度seo推广怎么做
  • 预约做港澳证的网站网站排名在线优化工具
  • 罗湖实惠的网站建设费用成都官网seo厂家
  • 建设部官方网站有哪些优帮云排名优化
  • 天津做网站找谁新东方在线教育平台官网
  • 南宁做网站在哪了日本预测比分
  • 咋样查看网站用什么编程语言做的9个广州seo推广神技
  • 网站链接太多怎么做网站地图谷歌广告
  • 网站关键词更新临汾网络推广
  • 个人做网站靠什么盈利免费网站建设模板
  • 网站开发 打标签aso优化怎么做
  • 教育校园网站建设方案seo每天一贴