|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Добрый день!Помогите пожалуйста выбрать верное решение. Воодные данные таковы простейшая табличка персона ,в ней 4 текстовых колонки email, и фио что нужно - пользователь вбивает в форму текст - по нему найти какие записи матчатся например есть запись Иванов Федр Петрович aaa@a.ru клиент вводит Федр и получает эту запись вводит @a.ru и получает эту запись ,поле для ввода одно ,а не два отедьно под фио и под емайл Количесво записей около 1 млн . Не хочется прикручивать сфинкс к проекту ,почитал отзывы - вроде как люди хвалят TS встроеный У какого какое мнение на этот счет И хотел спросить вопрос по реализации насколько я понимаю чтобы встроеный механизм работал быстро - нужно хранить векторы в этой же таблице персона или в отдельной 1 к 1 связь и одновляться по тригеру Может у кого то был опыт - подскажите как правильно это организовать ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 14:23 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O, если вам нужен поиск без словоформ (а он тут не нужен судя по всему) просто используйте pg_trgm и LIKE поиск по триграмному индексу. На миллионе записей будет нормально работать. https://www.postgresql.org/docs/13/pgtrgm.html -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 14:41 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk, Ну вообще да ,я думаю что слоформы тут явно лишние,так как email склонять точно не получится ну а имя фамилия отчество я думаю при поиске и так все вводят в одном падеже и единственном числе ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 14:57 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O Maxim Boguk, Ну вообще да ,я думаю что слоформы тут явно лишние,так как email склонять точно не получится ну а имя фамилия отчество я думаю при поиске и так все вводят в одном падеже и единственном числе тогда вам действительно триграммный индекс будет лучше всего. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 15:06 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk O_79_O Maxim Boguk, Ну вообще да ,я думаю что слоформы тут явно лишние,так как email склонять точно не получится ну а имя фамилия отчество я думаю при поиске и так все вводят в одном падеже и единственном числе тогда вам действительно триграммный индекс будет лучше всего. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru только не очень понятно что делать с фио- оно же из трех колонок состоит как это будет выглядеть в запросе не очень понимаю придет строка такого плана 'Федор Валентинович' или 'Иван Петров' или 'Алтуфьев Виктор av@mail.ru' ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 15:47 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
грубо говоря мне на вход приходит от клиента строка "ДАЙНЕКО ПЕТР ВИКТОРОВИЧ" как сделать тогда запрос ведь фио состоит из 3 колонок и еще есть емайл не очень понимаю что то типо такого же должно быть Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 19:36 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O, А это вам надо определиться вы хотите чтобы при вводе "петр" искало только имя петр или любой вариант вида петр петрович петроний (фамилиё такое) петр@yandex.ru (email)? если второе то индекс можно сделать триграмный по lower(first_name||'|'||last_name||'|'||'patronymic||'|'||email) и соответственно искать по lower(first_name||'|'||last_name||'|'||'patronymic||'|'||email) like lower('%петр%') А как оно должно трактовать "ДАЙНЕКО ПЕТР ВИКТОРОВИЧ" - вы про многословне поисковые запросы вообще ничего в исходном посте не говорили. Скорее всего надо что то вида ... like lower('%ДАЙНЕКО%') and ... like lower('%ПЕТР%) and -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 21:42 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk O_79_O, А это вам надо определиться вы хотите чтобы при вводе "петр" искало только имя петр или любой вариант вида петр петрович петроний (фамилиё такое) петр@yandex.ru (email)? если второе то индекс можно сделать триграмный по lower(first_name||'|'||last_name||'|'||'patronymic||'|'||email) и соответственно искать по lower(first_name||'|'||last_name||'|'||'patronymic||'|'||email) like lower('%петр%') А как оно должно трактовать "ДАЙНЕКО ПЕТР ВИКТОРОВИЧ" - вы про многословне поисковые запросы вообще ничего в исходном посте не говорили. Скорее всего надо что то вида ... like lower('%ДАЙНЕКО%') and ... like lower('%ПЕТР%) and -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru суть в том ,что пользователь может ввести и 'Петр' и "ДАЙНЕКО ПЕТР ВИКТОРОВИЧ" или "ПЕТР ВИКТОРОВИЧ" а еще "ПЕТР ВИКТОРОВИЧ aaa@a.ru" соотвественно я должен выдвать если 'Петр' то всех петров,если ДАЙНЕКО ПЕТР ВИКТОРОВИЧ то всех ДАЙНЕКО ПЕТР ВИКТОРОВИЧей,если ПЕТР ВИКТОРОВИЧ" то всех ПЕТР ВИКТОРОВИЧЕЙ, если ПЕТР ВИКТОРОВИЧ aaa@a.ru то всех Петр Викторовичей ,у кого почта aaa@a.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 22:00 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk O_79_O, А это вам надо определиться вы хотите чтобы при вводе "петр" искало только имя петр или любой вариант вида петр петрович петроний (фамилиё такое) петр@yandex.ru (email) -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Хочется чтобы при вводе петр выдавало петров всех,а петровчией и петровых нет если ввести Петр Петров - тогда всех петр петровых если Петров то всех Петровых ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 22:01 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O Maxim Boguk O_79_O, А это вам надо определиться вы хотите чтобы при вводе "петр" искало только имя петр или любой вариант вида петр петрович петроний (фамилиё такое) петр@yandex.ru (email) -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Хочется чтобы при вводе петр выдавало петров всех,а петровчией и петровых нет если ввести Петр Петров - тогда всех петр петровых если Петров то всех Петровых Это уже вам не всякий full text search даст. Но предполагая что в полях у вас тексты с пробелами не будут в наличии всё ещё можно на триграммах сделать. Я правильно понимаю что вам фактически то совпадения полей нужны? Тогда и триграммы то вам не нужны. Можно обычными совпадениями обойтись и обычными индексами. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 22:36 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk O_79_O пропущено... Хочется чтобы при вводе петр выдавало петров всех,а петровчией и петровых нет если ввести Петр Петров - тогда всех петр петровых если Петров то всех Петровых Это уже вам не всякий full text search даст. Но предполагая что в полях у вас тексты с пробелами не будут в наличии всё ещё можно на триграммах сделать. Я правильно понимаю что вам фактически то совпадения полей нужны? Тогда и триграммы то вам не нужны. Можно обычными совпадениями обойтись и обычными индексами. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Да ,верно,совпадения полей не нужны,тоесть если ввели петр - то петровы нам не нужны. Да нужно строгое совпадение - тоесть Петр ввели - значит всех петров отдаем Пробелов в самой бд не будет ,но клиент понятно будет вводить с пробелами если это очень сложно - можно попробовать вариант как вы сказали чтобы вы на петр - выдававало и петров и петровичей и петросянов кстати а втроеный механизм fts постгреса для этого не подойдет? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 22:48 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O Maxim Boguk пропущено... Это уже вам не всякий full text search даст. Но предполагая что в полях у вас тексты с пробелами не будут в наличии всё ещё можно на триграммах сделать. Я правильно понимаю что вам фактически то совпадения полей нужны? Тогда и триграммы то вам не нужны. Можно обычными совпадениями обойтись и обычными индексами. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Да ,верно,совпадения полей не нужны,тоесть если ввели петр - то петровы нам не нужны. Да нужно строгое совпадение - тоесть Петр ввели - значит всех петров отдаем Пробелов в самой бд не будет ,но клиент понятно будет вводить с пробелами если это очень сложно - можно попробовать вариант как вы сказали чтобы вы на петр - выдававало и петров и петровичей и петросянов кстати а втроеный механизм fts постгреса для этого не подойдет? Ну по полным совпадениям все просто же WHERE (first_name='ДАЙНЕКО' or last_name='ДАЙНЕКО' or patronymic='ДАЙНЕКО' or email='ДАЙНЕКО') AND (first_name='ПЕТР' or last_name='ПЕТР' or patronymic='ПЕТР' or email='ПЕТР') AND ... PS: кстати строго совпадение явно противоречит тому что вы в начале написали авторвводит @a.ru и получает эту запись -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 23:28 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk O_79_O пропущено... Да ,верно,совпадения полей не нужны,тоесть если ввели петр - то петровы нам не нужны. Да нужно строгое совпадение - тоесть Петр ввели - значит всех петров отдаем Пробелов в самой бд не будет ,но клиент понятно будет вводить с пробелами если это очень сложно - можно попробовать вариант как вы сказали чтобы вы на петр - выдававало и петров и петровичей и петросянов кстати а втроеный механизм fts постгреса для этого не подойдет? Ну по полным совпадениям все просто же WHERE (first_name='ДАЙНЕКО' or last_name='ДАЙНЕКО' or patronymic='ДАЙНЕКО' or email='ДАЙНЕКО') AND (first_name='ПЕТР' or last_name='ПЕТР' or patronymic='ПЕТР' or email='ПЕТР') AND ... PS: кстати строго совпадение явно противоречит тому что вы в начале написали авторвводит @a.ru и получает эту запись -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru понял спасибо за пример,но нужно немного иное иногда может быть строго соотвествие ,иногда нет тоесть принцип работы обычного поисковика- если я ввожу петр от выдаст мне петров всех если я ввожу петр @mail.ru,то я должен получить всех петров у которых домен майл ру если я ввожу Петрович Петр Петров - то должен получить именно его тоесть решение должно поддерживать многословность,не важно каков будет порядок ввода - вот такой алгорим поиска нужен. Я прошу прощения за спутанность некую я так понимаю что тут нужен именно поисковый движок типо сфинкса ? обычными средставами постгреса не получится такое осуществить? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 23:56 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk, вообщем не получается у меня по русски норм сформулировать то что надо вот по английски Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 00:03 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
тоесть по домену искать не надо - если клиент введет @a.ru - то не нужно такое,только почту целиком ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 00:05 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk, похоже таки нужно вот такая конструкция как вы писали WHERE (first_name='ДАЙНЕКО' or last_name='ДАЙНЕКО' or patronymic='ДАЙНЕКО' or email='ДАЙНЕКО') AND (first_name='ПЕТР' or last_name='ПЕТР' or patronymic='ПЕТР' or email='ПЕТР') AND но насколько быстро она будет работать если на вход прилет Петр Дайнеко Викторович aaa@a.ru это же 4х4 сравнений Ведь такое же можно с помощью FTS постгресовской сделать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 00:11 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O Maxim Boguk, похоже таки нужно вот такая конструкция как вы писали WHERE (first_name='ДАЙНЕКО' or last_name='ДАЙНЕКО' or patronymic='ДАЙНЕКО' or email='ДАЙНЕКО') AND (first_name='ПЕТР' or last_name='ПЕТР' or patronymic='ПЕТР' or email='ПЕТР') AND но насколько быстро она будет работать если на вход прилет Петр Дайнеко Викторович aaa@a.ru это же 4х4 сравнений Ведь такое же можно с помощью FTS постгресовской сделать ? При наличии индексов по всем 4м полям - это всего 16btree index scan и в общем скорее всего оно будет абы не быстрее любго разумного FTS. Тем более на миллионах (а не миллиардах и более) строк. На тестовой таблице с 10М строк получается 10-40ms на запрос Код: sql 1. 2. 3. 4. 5. 6.
-- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 00:23 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk O_79_O Maxim Boguk, похоже таки нужно вот такая конструкция как вы писали WHERE (first_name='ДАЙНЕКО' or last_name='ДАЙНЕКО' or patronymic='ДАЙНЕКО' or email='ДАЙНЕКО') AND (first_name='ПЕТР' or last_name='ПЕТР' or patronymic='ПЕТР' or email='ПЕТР') AND но насколько быстро она будет работать если на вход прилет Петр Дайнеко Викторович aaa@a.ru это же 4х4 сравнений Ведь такое же можно с помощью FTS постгресовской сделать ? При наличии индексов по всем 4м полям - это всего 16btree index scan и в общем скорее всего оно будет абы не быстрее любго разумного FTS. Тем более на миллионах (а не миллиардах и более) строк. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru я извиняюсь еще раз за вопросы такие,но я так понимаю мне тут нужен обычный индекс ,так как gin gist не работают на строгое соотвествие? и индекс нужен на каждую колонку или же общий индекс на 4 колонки ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 00:29 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O Maxim Boguk пропущено... При наличии индексов по всем 4м полям - это всего 16btree index scan и в общем скорее всего оно будет абы не быстрее любго разумного FTS. Тем более на миллионах (а не миллиардах и более) строк. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru я извиняюсь еще раз за вопросы такие,но я так понимаю мне тут нужен обычный индекс ,так как gin gist не работают на строгое соотвествие? и индекс нужен на каждую колонку или же общий индекс на 4 колонки обычный индекс на каждую колонку свой ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 00:31 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk,спасибо за помощь) 9 милисекунд на 2 млн записей в таблице единтсвено что я думаю может все таки Hash index ведь мы будем применять оператор = исключительно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 00:41 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O Maxim Boguk,спасибо за помощь) 9 милисекунд на 2 млн записей в таблице единтсвено что я думаю может все таки Hash index ведь мы будем применять оператор = исключительно? Не надо оно вам... заметного выйгрыша на коротких строках не будет. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 00:46 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk O_79_O Maxim Boguk,спасибо за помощь) 9 милисекунд на 2 млн записей в таблице единтсвено что я думаю может все таки Hash index ведь мы будем применять оператор = исключительно? Не надо оно вам... заметного выйгрыша на коротких строках не будет. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru понял ,спасибо еще вопрос такой хотел задать применимо к данной задаче - насколько быстро бы работал постгресовский FTS тут? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 01:00 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
решил немного пощупать FTS постргри Код: plsql 1. 2. 3.
[/src] нужно теперь индексы правильно создать и должно быть неплохо ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 01:46 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk обычный индекс на каждую колонку свой Максим исходя из опыта можете сказать,насколько сильно деградирует производительность при добавлении этих 4 индексов? например при вставке/удалении особенно пачками ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 10:57 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O Maxim Boguk обычный индекс на каждую колонку свой Максим исходя из опыта можете сказать,насколько сильно деградирует производительность при добавлении этих 4 индексов? например при вставке/удалении особенно пачками заведомо на меньше чем от добавления FTS GIN индекса который очень тяжелый сам по себе. а более конкретно ответить на вопрос "насколько сильно" невозможно берите и тестируйте это же вам надо а не мне. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 12:13 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk O_79_O пропущено... Максим исходя из опыта можете сказать,насколько сильно деградирует производительность при добавлении этих 4 индексов? например при вставке/удалении особенно пачками заведомо на меньше чем от добавления FTS GIN индекса который очень тяжелый сам по себе. а более конкретно ответить на вопрос "насколько сильно" невозможно берите и тестируйте это же вам надо а не мне. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ПОнял,спасиб сейчас тестирую FTC не пойму почему не идет индексное сканирование вот сам индекс Код: plsql 1. 2.
вот запрос Код: plsql 1. 2. 3. 4.
вот аналитика Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
что то я упустил подскажите пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 12:28 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O, у вас есть индекс using btree(foo(column)). Почему postgresql не использует его для запроса "where bar(column) = 10" ? Вам не кажется этот вопрос странным? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 12:37 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Melkij O_79_O, у вас есть индекс using btree(foo(column)). Почему postgresql не использует его для запроса "where bar(column) = 10" ? Вам не кажется этот вопрос странным? не понял вопроса? вы намекаете на разные колонки при поиске и индексации- у меня же теже самые при создании индекса и при поиске ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 12:44 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O, вы аналогично используете разные функции в запросе и в индексе ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 12:47 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Melkij O_79_O, вы аналогично используете разные функции в запросе и в индексе все увидел,спасибо тут сразу назревает вопрос - почему тогда индекс не создается без 'russian' получаю ошибку 7] ОШИБКА: функции в индексном выражении должны быть помечены как IMMUTABLE я бы хотел использовать дефолтный конфиг ,без конкретизации языка - не подскажите есть ли такая возможность? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 13:00 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O, потому что функция в индексе не должна меняться при изменении конфигурации базы. А то default_text_search_config можно менять хоть в каждой транзакции разный. И чтобы потом не огребать "якобы" "полезные" баг-репорты "ваш индекс хрень, чините" при очевидной ошибке оператора - добавлена минимальная проверка-требование immutable функции в create index, чтобы мешать стрелять в ноги. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 13:22 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Melkij, логично,спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 13:26 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
У меня еще такой ворпос возник - влияет ли на расположение в фильтре условий на планировку запроса-тоесть после полнотекстового поиска у меня там еще идут обычные фильтры по полям этой таблицы - например пол ,возраст и тд так вот влияет ли расстановка фильтров- например сначала where .... полнотекстовый поиск and sex='M' and age betwee 1 and 100 будет ли для постгреса это принципиально или же порядок фильтрации ему не важен? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 13:54 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O У меня еще такой ворпос возник - влияет ли на расположение в фильтре условий на планировку запроса-тоесть после полнотекстового поиска у меня там еще идут обычные фильтры по полям этой таблицы - например пол ,возраст и тд так вот влияет ли расстановка фильтров- например сначала where .... полнотекстовый поиск and sex='M' and age betwee 1 and 100 будет ли для постгреса это принципиально или же порядок фильтрации ему не важен? порядок указания условий в where не важен для базы. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 15:08 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk,подскажите пожалуйста как с помощью подобного запроса найти записи у которых имя фамилия или отчество null как все вместе так и сборно- например может быть только имя Код: plsql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 15:39 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
по идее же должен рабоать такой поиск Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 15:50 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
O_79_O Maxim Boguk,подскажите пожалуйста как с помощью подобного запроса найти записи у которых имя фамилия или отчество null как все вместе так и сборно- например может быть только имя Код: plsql 1. 2. 3. 4.
Это задача не для FTS а дня нормальных индексов или просто запросов. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 20:54 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Maxim Boguk O_79_O Maxim Boguk,подскажите пожалуйста как с помощью подобного запроса найти записи у которых имя фамилия или отчество null как все вместе так и сборно- например может быть только имя Код: plsql 1. 2. 3. 4.
Это задача не для FTS а дня нормальных индексов или просто запросов. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Это понятно ,но это один фильтр и не очень хочется делать много разные вариантов запросов пока придумал только вот такое Код: plsql 1. 2.
ну и индекс такой же,почему то plainto_tsquery('russian',' ')не работает так как ожидалось - оно в принципе и понятно там же наоборот пробелы чистит я вот думаю может можно с помощью регулярки как то это сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 21:11 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
ребят так нет ни у кого идеи как с помощью этой конструкции искать записи с null полями? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2021, 11:09 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2021, 13:58 |
|
Полнотекстовый поиск Postgres
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Код: sql 1. 2.
хех не ,так не пойдет,нужно в рамках вот этоого запроса такой же результат получить,как в вашем запросе Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2021, 14:35 |
|
|
start [/forum/topic.php?all=1&fid=53&tid=1993944]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
others: | 248ms |
total: | 407ms |
0 / 0 |