mysql-全文索引-什么是自然语言模式

mysql-全文索引-什么是自然语言模式,mysql,full-text-search,Mysql,Full Text Search,关于这篇文章,我有一个问题: 在这里我发现了这样的问题 SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('database' IN NATURAL LANGUAGE MODE); 我不明白的是什么是自然语言模式?我找不到确切的定义 有人能给出定义吗?它是如何工作的?MySQL的自然语言全文搜索旨在根据语料库匹配搜索查询,以找到最相关的匹配项。因此,假设我们有一篇包含“我爱派”的文章,我们有文档d1、d2、d3(您案例中的数据库)

关于这篇文章,我有一个问题:

在这里我发现了这样的问题

SELECT * FROM articles
WHERE MATCH (title,body)
AGAINST ('database' IN NATURAL LANGUAGE MODE);
我不明白的是什么是自然语言模式?我找不到确切的定义


有人能给出定义吗?它是如何工作的?

MySQL的自然语言全文搜索旨在根据语料库匹配搜索查询,以找到最相关的匹配项。因此,假设我们有一篇包含“我爱派”的文章,我们有文档d1、d2、d3(您案例中的数据库)。文件1和2分别涉及体育和宗教,文件3涉及食品。你的问题,

从文章中选择*以匹配(标题、正文)中的('database') 自然语言模式)

将返回d3,然后返回d2,d1(d2,d1的随机顺序取决于哪个更等于文章),因为d3最匹配文章

MYSQL使用的底层算法可能是tf idf算法,其中tf表示术语频率,idf表示反向文档频率。tf正如它所说,只是文章中一个单词w在文档中出现的次数。idf基于单词出现在多少文档中。因此,在许多文档中出现的单词对确定最具代表性的文档没有帮助。tf*idf的乘积产生一个分数,分数越高,表示文档的单词就越好。因此,“饼图”只会出现在文档d3中,因此具有高tf和高idf(因为它是相反的)。而“the”的tf值较高,但idf值较低,这将导致tf事件的发生并给出较低的分数

MYSQL自然语言模式还附带一组stopwords(The、a、some等),并删除少于4个字母的单词。可以在您提供的链接中看到

在全文搜索中,某些单词被忽略:

任何太短的词都会被忽略。全文搜索找到的单词的默认最小长度为三个字符 InnoDB搜索索引,或MyISAM的四个字符。你可以控制 通过在创建前设置一个配置选项来切断 索引:用于innodb搜索的innodb_ft_min_令牌_大小配置选项 索引,或MyISAM的ft_min_word_len

将忽略“停止字”列表中的字。停止词是一个非常常见的词,如“the”或“some”,它被认为是 零语义值。有一个内置的停止字列表,但它可以是 由用户定义的列表覆盖。停止字列表和相关的 InnoDB搜索索引和 MyISAM的。停止字处理由配置控制 选项innodb_ft_enable_stopword、innodb_ft_server_stopword_table、, 以及innodb搜索索引的innodb_ft_user_stopword_表,以及 MyISAM的ft_stopword_文件


人性化的解释,比如差异的例子,怎么样?我仍然不知道;我不明白它到底是什么意思,或者与其他修饰符有什么不同。