6

我想模拟这种类型的 Solr 查询:

http://wiki.apache.org/solr/MoreLikeThis

使用 PostgreSQL 的全文搜索工具。

有没有办法用纯 postgres 做类似“更像这样”的查询?

4

1 回答 1

2

恐怕不是开箱即用。可能可以比较两个 tsvector 以确定它们是否足够相似,或者提取前 n 个相似的 tsvector,但是没有开箱即用的功能可以做到这一点。好消息是,由于 tsvectors 支持 GIN 索引,复杂的部分已经为您完成了。

我认为您需要做的是在 C 中创建一个函数,该函数确定两个 tsvector 的交集。从那里您可以创建一个确定它们是否重叠的函数和一个解决此问题的运算符。从那里创建基于最大重叠的排名应该不会太难。

当然,我怀疑这在像 C 这样的语言中是最容易做到的,但如果需要,你也可以使用其他过程语言。

PostgreSQL 的美妙之处在于一切皆有可能。当然,缺点是当您远离核心功能时,您需要自己做很多事情。

于 2013-04-02T04:38:42.277 回答