Оставить "след" в постгресе

Oct 07, 2018 22:59

1. Полный список задач с описаниями для некоторых доступен https://docs.google.com/document/d/1wzDlMF7NkZZC4Kp6m6KRaYeaSYyU6tKvRkDUlKOyCjs/

2. Список ресурсов для начинающих разработчиков PostgreSQL
https://obartunov.livejournal.com/195274.html

3. Решить задачу - это написать код, тесты (функциональные, производительность), документацию

Задачи, которые я предлагаю для решения. Трудность: (1-5), 1 очень легкая.

1 (1). Добавить поддержку всех встроенных типов данных для BLOOM индекса
https://obartunov.livejournal.com/201027.html
2.(1) Перенести hstore_ops в contrib/hstore
https://github.com/postgrespro/hstore_ops
3.(2) Сделать сравнение в GIN opclass’ах для массивов без collation’а

4.(2) N-gram словарь для FTS (см. show_trgm() в contrib/pg_trgm)

5. (4) Сделать, чтобы GIN заработал как EXCLUSION CONSTRAINT

6. (3) Улучшить сигнатурный поиск в GiST

7. (4) Добавить поддержку GIN для contrib/ltree

8. (4) Добавить в RUM индекс opclass для поиска ближайших соседей.
Практический пример: Найти ближайший ресторан с названием, удовлетворяющий tsquery
Для этого надо добавить хранение point в дополнительной информации и написать соотв. opclass.

9. (3) Abbreviated keys для jsonb

10. (3) HTML parser for text search

11. (5) Конфигурируемый парсер для FTS - очень важная архитектурная задача

12. (5) Поддержка tf*idf ранжирования для FTS

13. (5) Approximated aggregates - неточное вычисление агрегатов.
1. Ограничиваем время выполнения запроса, получаем ответ и оценку ошибки
2. Задаем ошибку, время любое

14. (1) UNNEST(tsquery), см. функцию UNNEST(tsvector), только надо добавить флаг - слово или операция

select * from unnest('one:1 two:3a'::tsvector);
lexeme | positions | weights
--------+-----------+---------
one | {1} | {D}
two | {3} | {A}
(2 rows)

15. (1) Разобраться с tf*idf ранжированием, потестировать качество и производительность
https://github.com/obartunov/setrank

pgru, pg

Previous post Next post
Up