Обновить
2
0
Sway @Sway

Пользователь

Отправить сообщение
Уже умеет =) Версия, которая шла с postgresql 9.2 не имела такого функционала (только что проверил, там по теме была только вкладка SSL). С того момента я его и не использовал.
Для разных же слов существуют тезаурусы, LSI, WordNet и прочие высшие материи.

Вот тут-то и начинаются проблемы — я искал словари для русского. Либо ссылки мертвые, либо объем маловат.
Вот и получается так, что постгресовский FTS годен разве что для поиска по тексту в худ. литературе, где нет терминов и т.п.
С задачей типа «поиск по названиям книг и авторов» он не справляется =(
На сколько помню древний sphinx с аналогичной задачей справлялся без проблем (последний раз использовал его 4 года назад, сейчас он еще лучше будет). Получается что эффективнее как раз внешнее решение. И настраивать его не так муторно.
Все-равно это остается редкой задачей. Можно разок и из дампа восстановить.
Я про проблемы с морфологией и пишу. Для русского языка всё не очень хорошо в случае поиска по словам типа «Хабрахабр». Далеко не факт что он найдет этот вариант при поиске «Хаб» или «Хабр» (не проверял конкретно это название, но все фейлы поиска были для подобных названий). Я напоролся на кучу проблем с такими названиями и в итоге пришлось страховаться регулярками т.к. попытки найти решение используя FTS провалились полностью.
С полнотекстовым поиском далеко не всё в порядке. Кроме того, что его настраивать довольно муторно, особенно для кириллицы, у него так же много косяков с самим поиском когда он не находит то, что обычным лайком находится на ура. Часто это связано с именами/названиями. Приходится комбинировать его с like или ~ чтобы поиск был более-менее адекватным. + спец-словари для русского вообще сейчас невозможно найти (все ссылки древние и битые). Функционал сам по себе достаточный, но работает недостаточно хорошо чтобы использовать для языков отличных от английского.
Лучше Navicat Premium из платных я ничего не припомню. По крайней мере в нем есть всё, что нужно и оно вполне стабильно работает, если привыкнуть к некоторым глюкам. Пробовал многие другие — намного более глючные или нет какой-то информации/функционала для продвинутого использования.
Из бесплатных — PgAdmin. Но, на сколько помню, он не умеет соединяться через ssh
Такая ситуация вообще не должна происходить. Поэтому разработчики postgresql и не делают этот функционал. Он нужен в единичных случаях чтобы исправить косяк того, кто базу создавал. И это правильно. Накосячил — страдай. В следующий раз думать будешь перед тем как делать.
В постгресе вообще всё максимально строго. И это правильно.
А вот дороговизна — это уже не моя проблема =) Не от хорошей жизни я такое делаю =)
Нужно сохранять порядок добавления этих под-объектов и всё. Только поэтому добавление идет в конец. Наиболее близкий пример — одноуровневые комментарии к статье.
Бизнес-аналитики… знали бы вы как у нас всё это оценивается и разрабатывается…
Конкретно в этом случае я использовал json т.к. не нужно держать эти данные в отдельной таблице — они по сути неотделимы от объекта в котором хранятся и не используются никак иначе, но при этом имеют свою структуру. С text[] или varchar[] я не хотел заморачиваться т.к. их нужно было бы парсить, а так json decode и все готово. Решение оказалось очень удобным, кстати. jsonb же выбрал т.к. в нем есть полезные операции вхождения, которые в теории могут пригодиться, но очень надеюсь что до этого не дойдет (жизнь — боль, готовься к худшему)
Про безопасность знаю, уже сталкивался. Есть уже проверенный набор валидаторов входящих данных для фильтрации значительной части попыток взлома. Самая живучая проблема — дефектные utf8 символы. Все никак не могу их качественно побороть =(
JSON я стараюсь использовать только там где он реально необходим или, в крайнем случае — для хранения данных, структуру которых не могу сейчас предсказать (жизнь — боль).
PGSQL же использую с версии 9.1 т.к. лучшего бесплатного в мире не существует + уже привык к его плюшкам.
Меня до сих пор иногда бесит своими очень «подробными» ошибками или странными результатами выполнения некоторых функций. Недавно бодался с невозможностью добавить в jsonb массив новый элемент в конец. Т.е. по сути простейшая операция, но пока не вышел 9.5 — это можно сделать только через собственную функцию, в которой, кстати, тоже пришлось пострадать т.к. все функции работающие с json возвращают set jsonb, а не jsonb[] или что-то более удобоваримое. Вся надежда на 9.5
Вот и я пока склоняюсь к использованию проверенных временем СУБД. В сложных системах они все-равно будут надежнее. К хорошему быстро привыкаешь, даже если оно периодически выбешивает =)
Вот оно что. Спасибо. Получается что для postgresql для вашего примера нужно будет слать notify в 2 канала, реализуя notify в самой СУБД, а для rethinkdb можно просто подписаться на запросы и все в шоколаде.
В простых случаях для postgresql можно фильтрацию и на стороне получателя нотификации делать получая нужную информацию из payload.
Что-то типа «NOTIFY virtual, id;», но тут мы не получим сам item.
item можно получить используя row_to_json(record), но тут в случае необходимости фильтрации будет много лишней информации курсировать между БД и получателем. Может быть когда-нибудь и в postgresql улучшат нотификации =))
Насколько помню там было одно или несколько постоянных соединений в nodejs, подписанных на нужные нотификации. Т.е. клиенты не создают свое соединение.
Это не точная информация т.к. не я реализовывал эту систему, только немного модифицировал, так что вглубь особо не залезал. Моя задача состояла в реализции веб-клиента.
Клиенты были и веб и мобильные (andoid), там по сути не важно откуда к nodejs присоединяться.
Клиенты конектятся к nodejs через websocket. Nodejs получает обновления от postgresql и рассылает их тем, кто подписан. В postgresql стоят триггеры, которые срабатывают в определенных условиях и кидают NOTIFY.
Сценарий был такой: есть «система» (бд и менеджмент), есть кучка клиентов, которые могут работать с заказами «заказами». Клиенты 2х типов: «заказчик» и «исполнители». исполнители разделяются на несколько групп, выполняющих свои обязанности и передающие результат работы следующему исполнителю или заказчику. Если заказчик создает заказ, то исполнитель 1го этапа получает обновление, делает что-то и переводит заказ в следующее состояние. Тогда заказ появляется у исполнителя 2го этапа и т.д. пока заказ не будет выполнен и вернется к заказчику. Весь процесс при этом можно отслеживать из менеджмента «системы» в реальном времени. Примерно такая система работала вполне адекватно, но не тестировалось при больших нагрузках (пока я там работал)
А можете мне объяснить чем нотификации в PostgreSQL (http://www.postgresql.org/docs/9.4/static/libpq-notify.html) хуже нотификаций от NoSQL СУБД? Я когда-то работал с этим механизмом в связке nodejs + postgresql и не помню чтобы были с ним какие-то проблемы, поэтому меня и интересует заданный вопрос.
В статье про создание дизайна небыло сказано ни слова, а сравнение делалось с cms+шаблон. И все же если брать шаблонный дизайн как вы сделали для статьи, то 2 недели как-то долговато получается как ни крути. Да и не выгодно за 200$ 2 недели страдать.
Если брать дизайн + сайт, то 200$ вполне объяснимы.
Согласен, что заказчик часто не знает чего хочет и начинает генерировать порой «гениальные» идеи, но тут уже нужно договариваться на эту тему отдельно. Как только дизайн утвержден — никаких дополнительных плюшек бесплатно не делать.
Одностраничник за 200$?? 2 недели?? Возможно я неправильно оцениваю объем работы из-за недостатка инфы?
Эм… чей-то я не понял… Вот эта штука (http://aliexpress.com/item/Cheapest-Price-High-Speed-Thin-Client-Computer-Intel-Core-i5-3317U-Barebone-System-DHL-Free-Shipping/1899216747.html) на полноценном core i5 без кулера намного производительнее этого Lenovo, при этом с 8Гб оперативки (+1 слот свободен остается) она стоила чуть больше 16000 (полтора месяца назад покупал). Претензий за 1,5 месяца — 0. Использую как рабочий комп, т.е. 8-9 часов в день постоянно. Перегревов нет.
В чем смысл этого леново, если есть аналоги лучше за ту же цену?

Информация

В рейтинге
Не участвует
Откуда
Украина
Дата рождения
Зарегистрирован
Активность