我该如何检测杜松子酒和吉斯特呢?

时间:2013-02-05 17:53:17

标签: postgresql indexing gin gist-index

如何在postgresql中检测GIN和GiST索引?我正在寻找postgres数据库是否使用全文。我认为表格使用GIN o GiST然后使用全文。

我接受GIN或GiST索引并不一定意味着它们用于全文搜索,但我如何区分其他索引类型呢?我想列出Gin a Gist索引

2 个答案:

答案 0 :(得分:2)

可以使用pg_get_indexdef()中的pg_index重新创建索引定义,由gist系统视图提供。输出在理论上是非常重要的,但在实践中,一个简单的正则表达式足以在某些索引类型上过滤这些定义。

例如,要查找ginSELECT pg_get_indexdef(indexrelid) from pg_index WHERE pg_get_indexdef(indexrelid) ~ 'USING (gin |gist )'; 索引,您可以使用如下查询:

tsvector

要查找某个数据库是否使用全文,我可能会搜索SELECT table_schema,table_name, column_name FROM information_schema.columns WHERE data_type='tsvector'; 列,而是使用如下查询:

{{1}}

答案 1 :(得分:1)

我在Postgres source code中挖掘并发现此信息存储在pg_am表中:

select i.relname, a.amname
from pg_index ix
left join pg_class i on ix.indexrelid = i.oid
left join pg_class t on ix.indrelid = t.oid
left join pg_am a on i.relam = a.oid