• Мова чи технологія для серверу обробки документів

    Разбирайтесь с FullTextSearch для своей СУБД. Зачем эти крутые велосипеды, время только убьете.

    На хабре есть инфа по MySQL.
    habrahabr.ru/post/40218
    Вот доки по постгресу
    www.postgresql.org/....3/static/textsearch.html
    В MSSQL тоже должно быть.
    А так как вся эта кухня пришла кажется с Ораклоидов — то там есть в любом случае.

    Из своего опыта:
    Пробовал на PostreSQL, правда для небольших текстов (2-8 слов). У меня был вопрос скорее не в поиске в большом тексте, а в вариативности однокоренных слов, учет ошибки раскладки, учет пропущенных букв и синонимы

    Но как работает для больших текстов не пробовал. Пишут — работает (поиск по «похожести» делает достаточно быстро).

    Основная идея
    — в базе создается таблица — справочник уникальных слов по всем документам. Каждому слову в соответствие ставить число (код) — для однокоренных слов — число одинаковое. Тоесть можно несколько груп с одинаковым смыслом обозначить одним числом. Движок FTS использует эту таблицу для формирования вектора.
    — В таблицу с документами добавляется поле типа вектор пар.(тип предоставляет движок FTS). В нем после анализа документа записывается вектор с парами «код — число». Код — это код из таблицы-справочника группы слов. Число — что-то типа вероятности или частоты упоминания слова в документе. По такому полю есть возможность строить индекс и делать что-то типа like запроса. Или точнее движок FullTextSearch предоставляет функцию высчитывающую разность между поисковой строкой и вот этим хитрым полем. Результат функции — число, по которому можно фильтрануться и отсортироваться.

    Вот тут лучше читануть примеры
    www.postgresql.org/...#TEXTSEARCH-TABLES-SEARCH
    и искать под свою СУБД

    Да, и поиск слова в справочнике может выполняется не по точному совпадению

    Підтримав: Alex Lynn
  • Коворкинг, дом или «дядя»?

    хаа.. а ведь дело говорит челокек:).. вполне реализуемая штука.. ну что ж терь ждемс, наблюдаем.. скоро у кого-то такое да всплывет