1

我们设置了一个全文索引,用于在网站 (mysql/php) 上进行搜索。

搜索在大多数情况下工作得很好,但我们不断遇到这些奇怪的错误。

例如:

1)这个作品:“中国炒锅”

2)这不是:“First Wok”

我的假设是第二个不起作用,因为:a)它踢出'wok',因为它只有3个字母b)它踢出'first',因为它在一些要忽略的单词列表中。

我的假设正确吗?

如果是这样,我将如何对两者进行调整:a)以某种方式将“first”列为在搜索中使用的词 b)以某种方式将“wok”列入白名单,尽管它只是一个 3 个字母的词

一如既往的感谢!

4

1 回答 1

3

我的假设正确吗?

你在这两个方面都是正确的。如自然语言全文搜索中所述

在全文搜索中会忽略某些词:

  • 任何太短的单词都会被忽略。全文搜索找到的默认最小单词长度为四个字符。

  • 停用词列表中的单词将被忽略。停用词是诸如“the”或“some”之类的词,它非常常见,以至于被认为具有零语义值。有一个内置的停用词列表,但它可以被用户定义的列表覆盖。

默认停用词列表在第 12.9.4 节,“全文停用词”</a> 中给出。可以按照第 12.9.6 节“微调 MySQL 全文搜索”</a>中所述更改默认的最小字长和停用词列表。

微调 MySQL 全文搜索中所述

于 2012-12-03T22:24:40.623 回答