我是 Postgres 的新手,遇到了全文搜索功能。我想实现以下目标:
- 指定一些要搜索的表和字段。
- 当用户搜索一些文本时,应该在上面指定的表格字段上进行搜索。
例如
CREATE TABLE customer (name text)
CREATE TABLE address (city text)
搜索“Ram”应找到名称“Ram*”和城市“Ram*”(可能最多 10 条记录)。
开放点:排名。
我知道这可能不是直截了当的,但是如果您可以提供示例语句来实现类似的效果?
我是 Postgres 的新手,遇到了全文搜索功能。我想实现以下目标:
例如
CREATE TABLE customer (name text)
CREATE TABLE address (city text)
搜索“Ram”应找到名称“Ram*”和城市“Ram*”(可能最多 10 条记录)。
开放点:排名。
我知道这可能不是直截了当的,但是如果您可以提供示例语句来实现类似的效果?
这在全文搜索的 PostgreSQL 文档中得到了很好的介绍,该文档显示了搜索多个列并对其加权的示例。
尤其参见控制全文搜索和操作文档。排名也在那里,在排名搜索结果中。
你还没有真正提供足够的信息来说更多。对于跨多个表进行搜索,您通常希望对JOIN
这些表进行查询,或者为了获得最佳性能,创建一个触发器维护的物化视图,您可以对其进行索引然后对其进行查询。
如果这些表是独立且不相关的,那么在单个查询中查询它们是没有意义的;您通常会为此使用多个 tsearch2 查询。我想您可以UNION ALL
查询结果然后对其进行排名,但不能保证两个表之间的排名是一致的。