Postgresql:可能在全文内搜索?

ver*_*era 9 postgresql search full-text-search

我们想使用PostgreSQL来存储文档.由于其中一些可能高达2 GB,我们必须使用lob-Datatype,其中大对象存储在单独的表(pg_largeobject)中,由OID引用,根据大对象上文档.

对我们来说,这是非常重要的,这些文件(.pdf,.doc,...)可以被搜索到.使用内置的PostgreSQL全文搜索表和列可以搜索,但是也可以搜索表中的大对象pg_largeobject吗?

如果没有,我们必须使用Oracle.

Cra*_*ger 3

这里至少有两个问题。

  1. 全文搜索实际上不适用于存储为loboid 引用的大型对象。您无法对 的内容进行全文索引pg_largeobject

  2. 全文搜索是一种文本索引系统。它无法索引 PDF、Microsoft Word 文档或其他随机二进制文件。它没有提供文本提取工具回调等。

您可以:

  • 创建一个表,其中包含使用外部工具从这些文件中提取的文本以及oid引用文件本身的表,然后对该提取文本的表进行全文索引;或者

  • 使用更强大、功能齐全的外部搜索系统,例如Solr(基于Lucene),该系统旨在处理不同的格式、进行自己的文本提取等。