0

私は非常に大きなナレッジ ベース (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 タグを検索できないため、結果は返されません。以前の質問に対して、私ができる解決策を 1 つ見ました。

select to_tsvector( 'simple', regexp_replace(column_name, E'[^A-Za-z0-9]', ' ', 'g')) @@ to_tsquery('simple','Albert_Einstein');

問題は、私が作成した gin インデックスを使用しないため、パフォーマンスが良くないことです。どうすれば高速にクエリできますか?

4

1 に答える 1

1

以下にジンインデックスを作成することで、これを解決できました。

 create index no_xml_idx on yagofacts using gin(to_tsvector('simple', regexp_replace(column_name, E'[^A-Za-z0-9]', ' ', 'g')));
于 2015-05-14T12:28:08.967 に答える