如何在postgresql中检测GIN和GiST索引?我正在寻找postgres数据库是否使用全文。我认为表格使用GIN o GiST然后使用全文。
我接受GIN或GiST索引并不一定意味着它们用于全文搜索,但我如何区分其他索引类型呢?我想列出Gin a Gist索引
答案 0 :(得分:2)
可以使用pg_get_indexdef()
中的pg_index
重新创建索引定义,由gist
系统视图提供。输出在理论上是非常重要的,但在实践中,一个简单的正则表达式足以在某些索引类型上过滤这些定义。
例如,要查找gin
或SELECT 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