|
|
|
FTS для внешних данных
|
|||
|---|---|---|---|
|
#18+
Добрый день! На одной машине имеется файловый сервер , на другой - БД postgresql Есть ли возможность в postgre создавать полнотекстовый индекс для файлов и при этом их физически не хранить, а хранить только ссылку на файл (например путь в файловой системе)? спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 12:55 |
|
||
|
FTS для внешних данных
|
|||
|---|---|---|---|
|
#18+
HiHunterДобрый день! На одной машине имеется файловый сервер , на другой - БД postgresql Есть ли возможность в postgre создавать полнотекстовый индекс для файлов и при этом их физически не хранить, а хранить только ссылку на файл (например путь в файловой системе)? спасибо! Можно, если знаете как добраться до файлов из постгреса, например, в pl/perl, pl/python. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 13:34 |
|
||
|
FTS для внешних данных
|
|||
|---|---|---|---|
|
#18+
Oleg BartunovHiHunterДобрый день! На одной машине имеется файловый сервер , на другой - БД postgresql Есть ли возможность в postgre создавать полнотекстовый индекс для файлов и при этом их физически не хранить, а хранить только ссылку на файл (например путь в файловой системе)? спасибо! Можно, если знаете как добраться до файлов из постгреса, например, в pl/perl, pl/python. Все равно в базе придется хранить tsvector который по размеру будет не то чтобы сильно меньше исходного текста в файле. А вот так чтобы FTS GIN индекс построенный по данным вне базы + ссылка на файл в таблице - по моему это невозможно (так чтобы tsvector не хранился в базе вообще). -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 13:54 |
|
||
|
FTS для внешних данных
|
|||
|---|---|---|---|
|
#18+
HiHunter, как я неправильно понял -- предлагается что то из : Код: sql 1. 2. 3. + reindex or update всякий раз, когда меняете тело файла. НО с апдейтом при неизменном пути будут проблемы. -- оно ж иммутабно (смайл). А перегружать IMMUTABLE ф--ю в конкурентной среде -- чтобы отинвалидить кеш значений в пж бабушка не велит (остальные валятся с криками -- ну вот не поделено оно [кеш имутабных] по txid ни разу) -- т.ч. проблем будет по самое нехочу. надо изначально закладываться, что изменение тела файла == изменению пути. тогда проще [не надо перегружать ф--ю]. т.е. куча хенджоба, и, по итогу, ни вправо ни влево ни шагу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 13:56 |
|
||
|
FTS для внешних данных
|
|||
|---|---|---|---|
|
#18+
Oleg BartunovМожно, если знаете как добраться до файлов из постгреса, например, в pl/perl, pl/python. Из постгреса нет такой возможности. Постгес не имеет доступ к файловому серверу. Файл для индексации спускается в БД внешним приложением. Maxim BogukВсе равно в базе придется хранить tsvector который по размеру будет не то чтобы сильно меньше исходного текста в файле. А вот так чтобы FTS GIN индекс построенный по данным вне базы + ссылка на файл в таблице - по моему это невозможно (так чтобы tsvector не хранился в базе вообще). Вот интересно именно второе. т.к. для поиска интересен в основном только факт наличия словоформы. Ранжирование полезно, но можно и без него. А конкретное положение в тексте вообще не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 14:03 |
|
||
|
FTS для внешних данных
|
|||
|---|---|---|---|
|
#18+
qwwqHiHunter, как я неправильно понял -- предлагается что то из : Код: sql 1. 2. 3. + reindex or update всякий раз, когда меняете тело файла. НО с апдейтом при неизменном пути будут проблемы. -- оно ж иммутабно (смайл). А перегружать IMMUTABLE ф--ю в конкурентной среде -- чтобы отинвалидить кеш значений в пж бабушка не велит (остальные валятся с криками -- ну вот не поделено оно [кеш имутабных] по txid ни разу) -- т.ч. проблем будет по самое нехочу. надо изначально закладываться, что изменение тела файла == изменению пути. тогда проще [не надо перегружать ф--ю]. т.е. куча хенджоба, и, по итогу, ни вправо ни влево ни шагу. Не совсем. 1. файл неизменен 2. Вообще говоря файла нет(индексируется некая промежуточная форма представления файла, которая вычисляется во внешнем по отношении к БД приложении). Промежуточная форма тоже неизменна. 3. В БД есть таблица со ссылкам на файлы. При обработке файла это внешнее приложение создает в таблице запись со ссылкой на файл. Дополнительно оно может передать и эту промежуточную форму для индексирования. 4. Требуется задействовать полнотекстовый поиск для записи нужных файлов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 14:16 |
|
||
|
FTS для внешних данных
|
|||
|---|---|---|---|
|
#18+
Первое что приходит в голову, это создать текстовый столбец в таблице для индексирования Сделать индекс нечувствительным к update Писать туда файл. в следующей транзакции делать update этого поля и присваивать NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 14:21 |
|
||
|
FTS для внешних данных
|
|||
|---|---|---|---|
|
#18+
так можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 14:43 |
|
||
|
FTS для внешних данных
|
|||
|---|---|---|---|
|
#18+
HiHunterOleg BartunovМожно, если знаете как добраться до файлов из постгреса, например, в pl/perl, pl/python. Из постгреса нет такой возможности. Постгес не имеет доступ к файловому серверу. Файл для индексации спускается в БД внешним приложением. pl/perlU может все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2016, 18:11 |
|
||
|
FTS для внешних данных
|
|||
|---|---|---|---|
|
#18+
Maxim BogukOleg Bartunovпропущено... Можно, если знаете как добраться до файлов из постгреса, например, в pl/perl, pl/python. Все равно в базе придется хранить tsvector который по размеру будет не то чтобы сильно меньше исходного текста в файле. А вот так чтобы FTS GIN индекс построенный по данным вне базы + ссылка на файл в таблице - по моему это невозможно (так чтобы tsvector не хранился в базе вообще). -- Maxim Boguk www.postgresql-consulting.ru возможно, надо функциональный индекс использовать. Вот Citus недавно пример привел https://www.citusdata.com/blog/14-marco/410-scalable-real-time-product-search-using-citus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2016, 18:16 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39251218&tid=1997183]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
209ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 540ms |

| 0 / 0 |
