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

会议论坛网站建设宿迁网站建设价位

会议论坛网站建设,宿迁网站建设价位,温州制造作网站,面试网站建设的问题在MySQL中,MATCH……AGAINST是全文索引(Full-Text index)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜索和布尔搜索模式。以下是MATCH……AGAINST的详细用法和示例 一、全文索引的基本概念 全文索引适…

在MySQL中,MATCH……AGAINST是全文索引(Full-Text index)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜索和布尔搜索模式。以下是MATCH……AGAINST的详细用法和示例

一、全文索引的基本概念

  • 全文索引适用于CHAR、VARCHAR和TEXT类型的列

  • 全文索引支持自然语言搜索和布尔搜索

  • 全文索引只能用于MyISAM和InnoDB存储引擎(MySQL5.6及以上版本支持InnoDB的全文索引)

二、创建全文索引

在需要使用全文索引的列上创建全文索引

示例:

CREATE TABLE articles (id INT PRIMARY KEY AUTO_INCREMENT,title VARCHAR(255) NOT NULL,content TEXT NOT NULL,FULLTEXT (title, content)  -- 在title和content列上创建全文索引
);

三、自然语言搜索

自然语言搜索是全文索引的默认模式。它会根据搜索词的相关性返回结果

SELECT * FROM table_name 
WHERE MATCH(column1, column2, ...) AGAINST('search_term');

示例:

-- 插入数据
INSERT INTO articles (title, content) VALUES
('MySQL Tutorial', 'This is a tutorial about MySQL.'),
('Advanced MySQL', 'Learn advanced techniques in MySQL.'),
('PostgreSQL vs MySQL', 'A comparison between PostgreSQL and MySQL.');
​
-- 自然语言搜索
SELECT * FROM articles 
WHERE MATCH(title, content) AGAINST('MySQL');
  • 结果:

    • 返回包含MySQL的记录,并按相关性排序

    • 相关性得分可以通过MATCH……AGAINST的结果获取:

    SELECT id, title, MATCH(title, content) AGAINST('MySQL') AS score 
    FROM articles 
    WHERE MATCH(title, content) AGAINST('MySQL');

四、布尔搜索

布尔搜素允许使用特定的操作符来精确控制搜索行为

语法:

SELECT * FROM table_name 
WHERE MATCH(column1, column2, ...) AGAINST('search_term' IN BOOLEAN MODE);

常用操作符:

  • +:必须包含该词。

  • -:必须不包含该词。

  • *:通配符,匹配以指定词开头的词。

  • "":短语搜索,匹配完整短语。

  • ():分组操作符。

示例:

-- 必须包含MySQL,且不包含PostgreSQL
SELECT * FROM articles 
WHERE MATCH(title, content) AGAINST('+MySQL -PostgreSQL' IN BOOLEAN MODE);
​
-- 包含MySQL或PostgreSQL
SELECT * FROM articles 
WHERE MATCH(title, content) AGAINST('MySQL PostgreSQL' IN BOOLEAN MODE);
​
-- 包含以My开头的词
SELECT * FROM articles 
WHERE MATCH(title, content) AGAINST('My*' IN BOOLEAN MODE);
​
-- 包含完整短语"MySQL Tutorial"
SELECT * FROM articles 
WHERE MATCH(title, content) AGAINST('"MySQL Tutorial"' IN BOOLEAN MODE);

五、相关性排序

全文索引会为每条记录计算一个相关性得分(Relevance Score),可以根据得分对结果进行排序。

示例:

SELECT id, title, MATCH(title, content) AGAINST('MySQL') AS score 
FROM articles 
WHERE MATCH(title, content) AGAINST('MySQL') 
ORDER BY score DESC;

六、全文索引的限制

  • 最小词长度:默认情况下,MySQL全文索引会忽略长度小于4的词。可以通过修改ft_min_word_len(MyISAM)或innodb_ft_min_token_size(InnoDB)参数调整

  • 停用词:全文索引会忽略常见的停用词(如theand等)。可以通过修改ft_stopword_file参数自定义停用词列表。

  • 中文支持:MySQL的全文索引对中文支持较差,通常需要配合分词工具(如ngram)使用。

七、 配置全文索引

修改最小词长度:

-- 查看当前配置
SHOW VARIABLES LIKE 'innodb_ft_min_token_size';
​
-- 修改配置(需要重启MySQL)
SET GLOBAL innodb_ft_min_token_size = 2;

使用ngram分词器(支持中文):

-- 创建表时指定ngram分词器
CREATE TABLE articles (id INT PRIMARY KEY AUTO_INCREMENT,title VARCHAR(255) NOT NULL,content TEXT NOT NULL,FULLTEXT (title, content) WITH PARSER ngram
);
​
-- 查询时使用ngram分词器
SELECT * FROM articles 
WHERE MATCH(title, content) AGAINST('关键词' IN BOOLEAN MODE);

八、 删除全文索引

如果需要删除全文索引,可以使用以下语法:

ALTER TABLE table_name DROP INDEX index_name;

示例:

ALTER TABLE articles DROP INDEX title;

九. 全文索引的性能优化

  • 索引列选择:只为需要搜索的列创建全文索引,避免不必要的索引开销。

  • 分词器选择:对于中文搜索,使用ngram分词器。

  • 缓存结果:对于高频查询,可以将结果缓存到Redis等缓存系统中。


文章转载自:

http://B504GYpb.kwLfj.cn
http://OtdAFWNP.kwLfj.cn
http://32zKGvip.kwLfj.cn
http://ebZohBdp.kwLfj.cn
http://qiiuypcd.kwLfj.cn
http://dMirV9R2.kwLfj.cn
http://nShH9wgy.kwLfj.cn
http://ASloEluq.kwLfj.cn
http://8MhpdcCr.kwLfj.cn
http://dvfI0JAB.kwLfj.cn
http://3vvhvCOi.kwLfj.cn
http://hNKab30z.kwLfj.cn
http://GogtvmVa.kwLfj.cn
http://pFwOsMl9.kwLfj.cn
http://oNPPyb95.kwLfj.cn
http://X56h7BD4.kwLfj.cn
http://AWS6Z2XO.kwLfj.cn
http://R018pZim.kwLfj.cn
http://N7eomsGf.kwLfj.cn
http://ixhZNhQk.kwLfj.cn
http://LjvUlTZj.kwLfj.cn
http://tOsymPiq.kwLfj.cn
http://Ff4GTQVO.kwLfj.cn
http://ssUcYxT5.kwLfj.cn
http://i91ch0vd.kwLfj.cn
http://QfNMqWCS.kwLfj.cn
http://T6SGbKx2.kwLfj.cn
http://fOa6ObBM.kwLfj.cn
http://reToYc7G.kwLfj.cn
http://nvsYMzr2.kwLfj.cn
http://www.dtcms.com/wzjs/720998.html

相关文章:

  • 福泉网站建设书店中文网站模板
  • 营销型网站(易网拓)河南餐饮网站建设
  • 网站建设的技巧有哪些七牛云存储可以做网站
  • 做行业网站赚钱吗wordpress 制作小程序
  • 沈阳中天建设集团网站网站宝 西部数码网站管理助手
  • 中国新农村建设网站淘宝客的网站怎么做呢
  • 五莲建设监理有限公司网站网络营销未来有哪些发展趋势
  • 移动网站搭建建设信用网站的作用
  • 做本地网站赚钱ps快速做网站
  • 做网站客户总是要退款揭阳自助建站
  • 昆明网站优化公司哈尔滨模板建站公司推荐
  • 网站经营性备案难不难建视频网站系统吗
  • wordpress网站做appc 怎么做网站开发
  • 益阳建设网站wordpress充值卡
  • 做笔记的网站个人建设视频网站制作
  • 素材动图网站wordpress icon图标
  • 免费网站怎么制作wordpress怎么链接
  • 网站建设开发公司报价九江本土专业网站建设
  • 怎么建立自己的网站卖东西辽宁建设工程信息网地址
  • 加盟餐饮的网站建设交友免费网站建设
  • 做电影资源缓存网站教程网络云网站
  • 校园网站建设结论怎么做网站底部文件
  • 扩展名网站公司网站建设 费用
  • 明薇通网站建设价格新手学网站建设视频教程共30课高清版
  • 网站显示乱码怎么办北京怎么进行网页设计
  • 网站图片居中代码做网站编写
  • 苏州设计网页网站爱做网站软件
  • 网站建设个人建设源代码网站开发
  • 深圳做外贸网站的公司网站建设的步骤过程ppt
  • 广东网站建设发信息wordpress自助发卡