Список докладов конференции PgConf.Russia 2017

RUM-индексы и их применение

Александр Коротков
Postgres Professional, Руководитель разработки

Александр имеет статус PostgreSQL Major Contributor. В 2008 г. окончил МИФИ с красным дипломом. Защитил кандидатскую диссертацию, основанную на своём вкладе в развитие PostgreSQL, а именно на улучшениях в нечётком поиске строк, включая индексный поиск по регулярным выражениям. Одним из крупнейших достижений Александра в работе для open source сообщества является инфраструктура расширяемости индексных методов доступа. Также его вклад включает в себя улучшения для GiST и GIN индексов, оптимизации для многоядерных архитектур, статистику и оценку селективности. Александр был ментором в программе GSoC 3 раза.

Я представлю новый метод доступа, который расширяет имеющиеся возможности GIN-индексов, используя дополнительную информацию, хранящуюся в списке/дереве идентификаторов. Например, дополнительная информация о позициях позволяет новому методу доступа возвращать результаты по релевантности, что может значительно сократить время исполнения полнотекстовых запросов. Это также может ускорить фразовый поиск, так что данный метод будет весьма эффективным при полнотекстовом поиске. Сохранение временных меток открывает перед нами несколько интересных возможностей – мы можем отсортировать результаты по времени (например, свежие статьи, удовлетворяющие полнотекстовому запросу) на основе временных меток как таковых или сохраненных указателей, упорядоченных по временным меткам. Оба способа обеспечивают на порядок большее ускорение для таких типов запросов. Еще одной сферой применения нового метода является поддержка инвертированного полнотекстового поиска – поиска запросов, отвечающих заданному документу.

Методы GIN и VODKA уже были, теперь есть еще и RUM.

Новый метод доступа – это расширение, разработанное на основе нестандартных методов доступа и WAL, доступных в релизе 9.6, которые поддерживаются компанией Postgres Professional.

ВИДЕО

Слайды