匹配(
col1
,col2
,……)反对(expr
[search_modifier
])
search_modifier:{在自然语言模式下的|在自然语言模式下的|在布尔模式下的|在查询展开}
MySQL支持全文索引和搜索:
MySQL中的全文索引是一种类型索引
全文
.MySQL提供了一个内置的全文ngram解析器,支持中文、日文和韩文(CJK),以及一个可安装的用于日文的MeCab全文解析器插件。中概述了解析差异第12.10.8节,“ngram全文解析器”,第12.10.9节,“MeCab全文解析器插件”.
一个
全文
索引定义可以在创建表
语句,或以后添加时使用ALTER TABLE
或创建索引
.对于大型数据集,将数据加载到没有数据的表中要快得多
全文
索引,然后在此之后创建索引,而不是将数据加载到现有的表中全文
索引。
使用匹配()与()
语法。匹配()
接受一个逗号分隔的列表,该列表命名要搜索的列。对
接受要搜索的字符串和指示要执行的搜索类型的可选修饰符。搜索字符串必须是在查询计算期间保持不变的字符串值。例如,这排除了表列,因为每一行的列可能不同。
全文搜索有三种类型:
自然语言搜索将搜索字符串解释为自然人类语言中的短语(自由文本中的短语)。除了双引号(")字符外,没有特殊操作符。应用停止词列表。有关停止词列表的更多信息,请参见第12.10.4节,“全文停止词”.
对象的全文搜索是自然语言搜索
在自然语言模式下
有修饰语或没有修饰语。有关更多信息,请参见第12.10.1节,“自然语言全文检索”.布尔搜索使用特殊查询语言的规则解释搜索字符串。字符串包含要搜索的单词。它还可以包含指定要求的操作符,例如一个单词必须在匹配的行中出现或不出现,或者它应该比通常的权重更高或更低。某些常见词(stopwords)从搜索索引中被省略,如果在搜索字符串中出现,则不匹配。的
在布尔模式
修饰符指定布尔搜索。有关更多信息,请参见第12.10.2节,“Boolean全文搜索”.查询扩展搜索是对自然语言搜索的修改。搜索字符串用于执行自然语言搜索。然后将搜索返回的最相关行的单词添加到搜索字符串中,然后再次执行搜索。该查询返回第二次搜索的行。的
在自然语言模式下进行查询扩展
或与查询扩展
修饰符指定查询扩展搜索。有关更多信息,请参见第12.10.3节,“带查询扩展的全文搜索”.
和有关信息。全文
查询性能,看第8.3.5节,“列索引”.
有关InnoDB
全文
索引,看到章节15.6.2.4,“InnoDB全文索引”.
中列出了关于全文搜索的约束第12.10.5节,“全文限制”.
的myisam_ftdump控件的内容转储MyISAM
全文索引。这可能有助于调试全文查询。看到第4.6.3节," myisam_ftdump -显示全文索引信息".