我有一个非常大的知识库(Yago2),其中包含 XMl 标签形式的列,例如'<Albert_Einstein>'
。性能在我的用例中非常重要,所以我创建了一个这样的 gin 索引:
create index col_idx on yagofacts using gin(to_tsvector('english', column_name));
现在我试图用
select * from yagofacts where to_tsvector('english', column_name) @@ to_tsquery('Albert_Einstein');
但是,它不会返回任何结果,因为它无法在 XML 标记中进行搜索。我看到了一个可以解决上一个问题的方法:
select to_tsvector( 'simple', regexp_replace(column_name, E'[^A-Za-z0-9]', ' ', 'g')) @@ to_tsquery('simple','Albert_Einstein');
问题是它没有很好的性能,因为它没有使用我创建的 gin 索引。如何快速查询?