- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго времени суток.
Интересует вопрос, каков наиболее оптимальный способ обновления (перестроики) инвертированного индекса? Как известно, при обновлении даже небольшого количества документов (к примеру 1-2% от общего количества документов в индексе) в индексном файле приходится перестраивать множество постлистов, что по сути приводит к полной перестройки всего файла индекса. Предлагаю обсудить следующие способы:
Способ А (сегментирование):
Вся колекция документов разбивается на сегменты. Для каждого сегмента строится свой индекс. Например, если у нас имется 1000 документов - мы можем их разбить на 10 сегментов по 100 документов в каждом и построить 10 индексных файлов. Соответственно при поиске мы будем получать список состоящий из N наиболее релевантных документов для каждого сегмента, затем объединять эти списки (по OR) в порядке релевантности документов.
Развивая эту идею можно разбивать коллекцию на непропорциональные по количеству содержимых документов сегменты. Это позволит создавать большие сегменты с относительно редко обновляемыми документами, и малые сегменты куда могут входить документы требующие частой переиндексации.
Другой приятный момент такого способа - возможность разносить полученные файлы индексов на разные машины (и/или диски), что позволит выполнять запросы параллельно.
Способ Б (ревизии):
Этот способ позволяет избежать полной перестройки файла индекса и обновлять только небольшую часть списка документов. Для каждого обновления индекса мы будем создавать отдельный файл индекса, который назовем ревизией. Для каждой ревизии (читай индекса) будем сохранять список id документов которые в содержатся в файле индекса ревизии. При построении новой ревизии мы будем удалять из списков документов предыдущих ревизий документы которые мы только что периндексировали. Поясню на примере:
1) В первый раз строим индекс A и сохраняем список A_doclist всех документов которые содержаться в этом индексе.
2) Строим индекс B и сохраняем список документов B_doclist. Затем из списка A_doclist удаляем все id документов которые содержатся в B_doclist.
3) Строим индекс C и сохраняем список документов C_doclist. После этого и из A_doclist и из B_doclist удаляем id документов из c_doclist. И т.д.
При поиске мы будем иметь 3 индексных файла и 3 списка документов. Для каждого индекса извлечем постлист искомого терма(слова) и объединим (по AND) со своим списком id документов. Затем объединим (по OR) полученные списки для каждой ревизии:
merge_AND(A_postlist, A_doclist) OR merge_AND(B_postlist, B_doclist) OR merge_AND(C_postlist, C_doclist).