面试题答案
一键面试适用场景
- 文本搜索场景:当需要在大量文本数据中进行模糊搜索,例如文章、评论、产品描述等字段。比如新闻网站搜索文章内容,电商平台搜索商品描述,传统的LIKE查询效率极低,全文索引能大幅提升搜索效率。
- 多词匹配场景:希望实现多个关键词同时匹配,并且能根据关键词的相关性对结果进行排序。例如用户输入多个关键词搜索书籍,全文索引可以按照与关键词的相关程度对书籍进行排序展示。
- 语义搜索场景:对于一些需要理解语义的搜索,如自然语言处理相关的搜索需求,全文索引结合特定的语言解析器,能更好地理解用户意图,提供更精准的搜索结果。
创建全文索引基本SQL步骤
- 创建表时添加全文索引:
CREATE TABLE your_table_name (
id INT PRIMARY KEY AUTO_INCREMENT,
content TEXT,
FULLTEXT(content)
) ENGINE=InnoDB;
在上述示例中,your_table_name
是表名,content
是要建立全文索引的字段,使用FULLTEXT
关键字在创建表时直接为content
字段添加全文索引。
2. 为已存在的表添加全文索引:
-- 方式一:添加单个全文索引
ALTER TABLE your_table_name ADD FULLTEXT(column_name);
-- 例如
ALTER TABLE your_table_name ADD FULLTEXT(content);
-- 方式二:添加包含多个字段的全文索引
ALTER TABLE your_table_name ADD FULLTEXT(column1, column2, column3);
-- 例如
ALTER TABLE your_table_name ADD FULLTEXT(title, content, description);
在上述示例中,your_table_name
是已存在的表名,column_name
、column1
、column2
、column3
等是具体要包含在全文索引中的字段名。