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

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

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

15 ответов

14 просмотров

У тебя же автоматом будет минус индекс... Тебе это точно надо? Это можно применять только как дополнительные фильтры на уже отфильтрованных данных, типа до 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

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта