Postgresql s:*和t的查询结果为奇数:*

Postgresql s:*和t的查询结果为奇数:*,postgresql,Postgresql,我在试验PostgreSQL的文本搜索功能——特别是对查询的规范化功能 我使用的是英语字典配置,由于某种原因s和t不会正常化。我明白为什么我和a不会,但s和t?有趣 它们是否与单个空格和制表符匹配 以下是查询: 选择 对于“英语”,a:*“至于a, 要询问“英语”,“s:*”至于“s”, 对于“英语”,“t:*”以及“t”, 要询问“英语”,“u:*”以及“u” 以防万一 您会看到“u:*”返回为“u:*”,而“a:*”没有返回任何内容。在英文文本搜索词典中,字母s和t被视为停止词,因此它们会被

我在试验PostgreSQL的文本搜索功能——特别是对查询的规范化功能

我使用的是英语字典配置,由于某种原因s和t不会正常化。我明白为什么我和a不会,但s和t?有趣

它们是否与单个空格和制表符匹配

以下是查询:

选择 对于“英语”,a:*“至于a, 要询问“英语”,“s:*”至于“s”, 对于“英语”,“t:*”以及“t”, 要询问“英语”,“u:*”以及“u” 以防万一

您会看到“u:*”返回为“u:*”,而“a:*”没有返回任何内容。

在英文文本搜索词典中,字母s和t被视为停止词,因此它们会被丢弃。您可以阅读postgres共享文件夹中tsearch_data/english.stop下的停止词列表,您可以通过键入pg_config-sharedir找到该文件夹 对于ubuntu/debian/mint上的第11页,这将是

cat/usr/share/postgresql/11/tsearch_data/english.stop

引述

停止词是非常常见的词,几乎出现在每个文档中,并且没有区别价值。因此,在全文搜索的上下文中可以忽略它们

最好抛弃英语语法,用如上所述的程序化和逻辑化的方式思考单词。全文搜索不会试图根据句子结构推断上下文,因此对这些单词没有任何用处。毕竟,它被称为全文搜索,而不是自然语言搜索


至于他们是如何得出将s和t添加到停止词列表中的结论的,统计分析一定揭示了这些字符是噪声。

它们是标准化的。他们只是被正常化为一无所有!但是为什么什么都不做呢?一定有原因的。A和我会规范化为零,因为英语词典配置的冠词/代词规则,或者至少我是这么认为的。S/T的原因可能是什么?