• При переходе с любой ссылки поисковика — просмотр с главной страницы. Возможно ли?

    @DenKrep
    Учитывая вашу ситуацию, пожалуй вариант со всплывающим окошком о том что сайт старый — самое то. Единственное, лучше не всплывающее окошко (т.к. и режут такие вещи многие браузеры / подавители рекламы, и раздражает). Просто где-то наверху большими красными буквами — вы просматриваете старую-архивную версию сайта. Перейти на новый сайт можно во вот этому УРЛу тыць.
    Ответ написан
    1 комментарий
  • Создание теговой системы

    @DenKrep
    1) Извиняюсь, ошибся. Я не на хабре эту статью видел. Вот здесь была она: dou.ua/lenta/articles/suggester/
    2) Да, MapReduce имеет как следствие полный перебор источника данных. Это один из недостатков. Но действительно ли вам нужна технология основанная map-reduce? Есть большие сомнения.
    3) 100 ГБ это не очень большая база на сегодняшний день, скажем откровенно. Бывают базы-справочники (MDM) в десятки раз больше. Тем более если вы в базе храните сами документы, то это может быть даже мало.
    3.1) Сколько строк планируется в таблице (списке) статей.
    3.2) Сколько уникальных тегов ожидаете
    3.3) Сколько, в среднем, к одной статье привязано тегов?
    Если ответ — миллионы / десятки миллионов, то рядовая реляционка спокойно потянет ваши запросы за доли секунд.
    4) Статей — множество. Описаний алгоритмов индексации — тоже. Один из примеров — ссылка в п.1 этого сообщения. Но уверенны что хотите изобретать велосипед и хотите самостоятельно создавать такой индекс?
    5) PS: кстати, если вам нужно будет индексировать сами документы, то тут уже стоит посмотреть на какие-нибудь продукты основанные на Lucene (Solr, elastic search, ...). Но это уже совсем другая песня :)
    Ответ написан
  • NHibernate vs хранимые процедуры

    @DenKrep
    А почему не хотите просто сделать выборку с помощью SQL, которая вернёт вам строки соответсвующие вашему условию? На 99% уверен, что будет работать быстрее. Ну или через хранимую процедуру (хотя из описания вашего условия — не понял зачем вам хранимка. Для выбора из таблиц строк по условию обычного SQL будет достаточно).
    Ответ написан
    7 комментариев
  • Создание теговой системы

    @DenKrep
    Насколько большой объём данных? Какие-то специфические требования к систему есть? Т.к. если нету каких-то особенных требований, но, судя по задаче, уже есть некоторая БД, где это уже хранится, то просто введение таблицы связки (многие ко многим между таблицами постов и тегов) позволит реализовывать то, что вы хотите.Если, конечно, сейчас оно хранится в реляционной БД. Если сейчас ваши посты хранятся в парах ключ-значение, то можете почитать про прямые и обратные индексы:
    По сути хранить с постами список тегов (или указателей для оптимизации), к которым принадлежит статья, а также хранить теги у которых храним статьи которые к ним принадлежат типа так:
    posts (
    {post1: tags [1,2]};
    {post2: tags[2,3]}
    )
    tags(
    {tag1: posts[1]}
    {tag2: posts[1,2]}
    {tag3: posts[2]}
    )
    При выполнении поискового запроса вам останется только найти пересечения множеств из выбранных тегов.
    Ответ написан
  • Как объяснить фирме, что их сайт содержит критическую уязвимость?

    @DenKrep
    А у ресурса нету никакого контакта а-ля support@resource.xyz? Написать туда, что " наткнулся тут у вас на критическую уязвимость, которую злоумышленники могут использовать для получения неправомерного доступа к чему-там-вы-нашли. В порядке акта доброй воли и благих намерений, могу предоставить детальную техническую информацию — пишите / звоните — вот мой контакт. Вознаграждение за предоставленную информацию будет приветствоваться, но не является обязательным."
    Ответ написан
    2 комментария
  • Хранение типизированных данных в базе данных

    @DenKrep
    Честно говоря не знаю как оно внутри MySQL-а реализовано, но в Оракле такая ситуация, что integer далеко не один байт (и может доходить до 9, насколько я помню, правда и поддерживаемая разрядность у оракла тоже впечатляет).

    В качестве примера на подумать:

    CREATE TABLE TEST (ID INTEGER, vc VARCHAR2(10 CHAR)); INSERT INTO TEST VALUES (1,'1'); SELECT DUMP(ID), DUMP(vc) FROM TEST;

    DUMP(ID) DUMP(VC)
    1 Typ=2 Len=2: 193,2 Typ=1 Len=1: 49

    Обращаю внимание на длины.
    А индексируются короткие строки на уникальные вхождения, как правило, не хуже, не соглашусь. Другое дело если планируете использовать диапазонные предикаты… Вот тут могут возникнуть «моменты», но, думаю, тогда бы Вы не спрашивали Ваш вопрос.

    Конечно, всё вышесказанное в первую очередь применим к Ораклу, но думаю что направление мысли «на проверить» понятно, а доверять, всё-равно никому нельзя :)
    Ответ написан
    Комментировать
  • Выборка из БД

    @DenKrep
    select from, count(*) from dialogs where to = 1 group by from;
    Ответ написан
    Комментировать