Postgres 的全文搜索什么时候支持词组匹配和邻近匹配?

hko*_*o19 5 postgresql full-text-search

从 Postgres 8.4 开始,数据库 fts 不支持精确短语匹配,如果给定 2 个词,它也不支持邻近匹配。例如,没有办法告诉 Postgres 匹配具有单词 #1 的内容,该内容位于单词 #2 的指定附近。有谁知道Postgres 的计划以及可能支持哪个版本的短语和邻近匹配?

Rob*_*vey 2

http://linuxgazette.net/164/sephton.html

<snip>

搜索向量

如何使用解析器和字典将文档内容转换为一组词位?如何匹配正文的搜索条件?PostgreSQL 提供了许多函数来做到这一点。我们要查看的第一个是 to_tsvector()。

tsvector 是一种内部数据类型,包含带有位置信息的词位数组。搜索时使用词位位置,根据邻近度和其他信息对搜索结果进行排名。人们可以通过标记构成搜索文档内容的不同部分来控制排名,例如标题、正文和摘要可以在搜索期间通过不同地标记这些部分而被不同地加权。部分标签(很简单,A、B、C 和 D)在创建时与 tsvector 相关联,但与这些标签相关联的权重修饰符可以在事后控制。

</snip>

有关完整短语搜索,请参阅此处。

Postgresql 网站没有路线图。相反,您会被转至“未决问题”页面。 目前,该页面没有提及全短语搜索。

  • 所以简短的回答是,不存在邻近匹配(如 Oracle 中的 NEAR()),并且 Postgres 没有有效的短语匹配:( (3认同)