1.1, Аноним (-), 12:33, 16/02/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Чем отличается обычный sql запрос по всей базе от полнотекстового поиска?
| |
|
2.4, Аноним (-), 14:15, 16/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
Подсистема полнотекстового поиска по сути индексирует поля, которые невозможно проиндексировать классически - те, в которых хранятся целиком документы, созданные в офисных пакетах (в т.ч. бинарные), XML-документы и т.п. Очень востребовано в издательских системах, системах док. оборота и т.п.
| |
2.6, Аноним (-), 14:28, 16/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
Не спец по postgres, но в других субд колонки типа varchar имеют ограничения по размеру и против них используется обычный bs-tree индекс. Этот индекс никак не может помочь при поиске вроде '%hello world%' и будет full-range scan.
По этой причине если нужно хранить много текста используется всякие CLOB с гигабайтными лимитами и индексы строятся не на текст а на каждое слово, что позволяет осуществить выборку записей где это слово встречается.
| |
2.9, КО (?), 17:11, 16/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
А это и есть запрос типа:
А найди ка мне такие строки в Которых упоминаются слова Иванов,Иван,Иванович неподалеку друг от друга и в любом падеже, на крайняк любое из них с инициалами.
| |
2.13, KonstantinB (ok), 00:59, 17/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
Вот есть у тебя какая-нибудь энциклопедия на 100500 страниц, а в конце алфавитный указатель вида "абажур - стр. 4, 51, 82".
Если ты будешь перелистывать в поиске абажура все 100500 страниц - это будет обычный SQL-запрос по базе. Если воспользуешься указателем - это будет в первом приближении то, как работает полнотекстовый поиск (по одному слову).
Если хочется понаучнее - почитай про инвертированные индексы и про алгоритмы-структуры полнотекстового поиска, заточенные под естественный язык (стеммеры, расстояния между словами, вот это все).
| |
|
1.3, DmA (??), 13:44, 16/02/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Очень редко тут пишут новости Постгресмены - все две новости у них, одна сегодня, вторая в далёком 2007 году.
| |
1.7, Ilya Indigo (ok), 16:28, 16/02/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Надеюсь Sphinx они не обойдут стороной и хотя бы сделают сравнение по производительности, нагруженности и гибкости по сравнению с нативными решениями.
| |
|
2.8, QuAzI (ok), 17:03, 16/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
Как раз тоже вспомнил о нём. Ни в одной СУБД не видел таких возможностей текстового поиска встроенных, обычно всё грустненько и на семинар не тянет ну никак.
| |
2.12, Vz (?), 23:00, 16/02/2017 [^] [^^] [^^^] [ответить]
| +2 +/– |
что именно есть в sphinx, чего нет в постгресе?
| |
|
3.15, QuAzI (ok), 11:48, 17/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
> что именно есть в sphinx, чего нет в постгресе?
Например стемминг, словоформы (типа алиасов, например замена см->сантиметр, чтобы получать равноценный выхлоп), поиск одной фразы по нескольким колонкам с ранжированием результатов выдачи (формула ранжирования задаётся весьма гибко)
| |
|
4.20, Аноним (-), 22:59, 17/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
О чём вы? Не уверен насчёт ранжирования, но стеминг и алиасы в postgres есть.
У sphinx есть интересные оптимизации, архитектура, об этом бы рассказали.
| |
|
5.21, QuAzI (ok), 23:45, 17/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
Пруфы в студию, пожалуйста. А то может народ зря люцены и сфинксы во все места втыкает чтобы поиск был хотя бы на поиск похож
| |
|
4.22, Michael Shigorin (ok), 20:09, 19/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
>> что именно есть в sphinx, чего нет в постгресе?
> Например стемминг, словоформы [...]
Кстати, если кому понадобится, но не подойдёт по каким-то причинам сфинкс -- гляньте ещё xapian.
| |
|
|
|
|
4.19, Аноним (-), 15:56, 17/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
Ну как минимум вот пилится новый индекс RUM, он вроде как заточен под текстовый поиск. В самом постгресе его ещё нет (он всё же ещё но не доделан) но можно собрать самому.
| |
|
|
|
|