- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Привет! Делаю свой поиск с русской морфологией и доп.фильтрами для поиска в некоем пуле документов. Документов около миллиона, каждые полчаса часть из них устаревает, взамен добавляются новые. Мне надо,
- чтоб искалось достаточно быстро,
- чтоб сразу после добавления документа можно было включать его в индекс. И, напротив, сразу после устаревания удалять.
После добавления документа я преобразую текст из него с помощью стеммера портера в основы (сейчас пробую заменить его на mystem, чтоб приводить к леммам), от них считаю хеши, которые являются индексами слов. Далее надо просто сохранить данные:
индекс слова->ид документа (это в простешем варианте, а так еще к ид документа+доп.параметры документа(например, id регионов), с учетом которых делается выборка документов).
Так вот, стоит вопрос - как эффективно хранить эти данные? Вариант запихать все записи в одну таблицу базы (word_id, doc_id ..) это даст миллиард+ записей в таблице. Это смущает. Еще вариант - под каждое слово делать таблицу (имя таблицы = hash слова), а ней хранить записи по документу на каждую. Это в итоге даст, предположительно, 200к+ таблиц в базе, в каждой от 1 до десятков тысяч записей..
Как по-уму то люди делають вообще? Прошу пнуть в верном направлении
Ковыряю Lucene ..
А че бы не сделать две таблицы:
в первой сделать оглавление - два столбца леммы и номера строк, в которых находятся id документов и доп. параметры (например, id регионов) из второй таблицы. А во второй таблице сортировать по id документов, чтобы удобно было)
слова->документ - это называется инвертированный индекс.
Какой ориентировочный размер базы?