Быстрый запрос с индексом gin к таблице со столбцом, содержащим теги XML

У меня очень большая база знаний (Yago2) со столбцами в форме тегов XMl, например. '<Albert_Einstein>'. Производительность очень важна в моем случае использования, поэтому я создал такой индекс джина:

 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. Как я могу запросить его быстро?


person Irina Veliche    schedule 14.05.2015    source источник


Ответы (1)


Мне удалось решить эту проблему, создав индекс джина:

 create index no_xml_idx on yagofacts using gin(to_tsvector('simple', regexp_replace(column_name, E'[^A-Za-z0-9]', ' ', 'g')));
person Irina Veliche    schedule 14.05.2015