172 похожих чатов

Нашел статью про поиск по шаблону в постгресе https://www.postgresql.org/docs/8.0/functions-matching.html там

в некторых случаях используются регулярные выражения. Как составлять регулярные выражения в постгресе?

15 ответов

4 просмотра

У тебя же автоматом будет минус индекс... Тебе это точно надо? Это можно применять только как дополнительные фильтры на уже отфильтрованных данных, типа до 5тыщ записей макс.

Как составлять — как в Perl, или Python. это одна и та же "реализация".

Michael-Anishchanka Автор вопроса
Ilya Zviagin
У тебя же автоматом будет минус индекс... Тебе это...

мне нужно сделать поиск по словам, игнорируя тире и регистр

Ilya Zviagin
У тебя же автоматом будет минус индекс... Тебе это...

Не обязательно. Но индексация для regexp работает "как повезёт", это да.

Ilya Zviagin
Как составлять — как в Perl, или Python. это одна ...

А это просто неправильно. Реализация в PostgreSQL совершенно другая.

Yaroslav Schekin
Не обязательно. Но индексация для regexp работает ...

Эм.... ты можешь привести пример, когда повезёт?

Yaroslav Schekin
А это просто неправильно. Реализация в PostgreSQL ...

Я поэтому поместил "реализация" в кавычки. Не нашёл нужного слова. СПЕЦИФИКАЦИЯ. надо было так

Michael Anishchanka
мне нужно сделать поиск по словам, игнорируя тире ...

Прочитайте документацию по regexp (актуальной версии), да и делайте, в чём проблема? Индексировать это — другое дело.

Ilya Zviagin
Я поэтому поместил "реализация" в кавычки. Не наш...

И тоже нет. ;) В PostgreSQL отличается синтаксис, и другие возможности и ограничения ("базовая" часть должна примерно совпадать, конечно).

Ilya Zviagin
Эм.... ты можешь привести пример, когда повезёт?

Ну вот, например: EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM search_fulltext_products WHERE product_text ~ 'CB7.*mcv' Без индекса: Seq Scan on search_fulltext_products (cost=0.00..123934.00 rows=100 width=180) (actual time=989.682..989.682 rows=0 loops=1) Filter: (product_text ~ 'CB7.*mcv'::text) Rows Removed by Filter: 1010000 Buffers: shared hit=2070 read=18339 I/O Timings: read=24.640 Planning Time: 4.880 ms Execution Time: 989.694 ms С индексом: Bitmap Heap Scan on search_fulltext_products (cost=11.78..131.33 rows=100 width=180) (actual time=0.229..0.230 rows=0 loops=1) Recheck Cond: (product_text ~ 'CB7.*mcv'::text) Rows Removed by Index Recheck: 7 Heap Blocks: exact=7 Buffers: shared hit=16 -> Bitmap Index Scan on products_trgm_idx (cost=0.00..11.75 rows=100 width=0) (actual time=0.203..0.203 rows=7 loops=1) Index Cond: (product_text ~ 'CB7.*mcv'::text) Buffers: shared hit=9 Planning Time: 1.947 ms Execution Time: 0.244 ms

Ilya Zviagin
и что, там не Perl extended?

Нет, там свой движок.

Yaroslav Schekin
И тоже нет. ;) В PostgreSQL отличается синтаксис, ...

POSIX же... https://www.postgresql.org/docs/13/functions-matching.html#FUNCTIONS-POSIX-REGEXP

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
11
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
А если для werf организовать отдельный репозиторий, а сервисы из проекта подключить как симлинки? И симлинки в гитигнор добавить?
Dmitriy Andreev
13
Я короче решил скомпилировать Nim в js, я думал он сработает как обычный транслятор. По итогу он мне создал файл с расширением js, и туда поместил кучу кода Вопрос, что это з...
𝕾𝖍𝖆𝖉𝖊 <suspense>
9
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
это группа токсиков или тех кто помогает?
Ибрагим
9
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта