Патент Google описывает технический механизм доставки обновляемых (потоковых) результатов поиска в реальном времени. Система кодирует идентификаторы уже отправленных результатов в специальную строку состояния (State String) и передает ее клиенту через Polling URL. При запросе обновлений клиент возвращает эту строку, позволяя серверу отфильтровать дубликаты (как по URL, так и по контенту) перед отправкой новых данных.
Описание
Какую задачу решает
Патент решает проблему эффективной доставки потоковых (streaming) результатов поиска в реальном времени. Когда пользователь наблюдает за обновляющейся выдачей (например, во время новостного события), система должна постоянно отправлять новый контент по мере его индексации, но избегать повторной отправки результатов, которые пользователь уже видел. Хранение состояния сессии для каждого пользователя на сервере ресурсоемко и плохо масштабируется. Патент предлагает решение, которое переносит задачу хранения состояния на сторону клиента.
Что запатентовано
Запатентован метод дедупликации потоковых результатов поиска с использованием состояния, управляемого клиентом. Идентификаторы уже отправленных результатов (Doc ID для URL и Content ID для контента) кодируются в строку состояния (State String) и встраиваются в URL для опроса (Polling URL). Когда клиент запрашивает обновления, он использует этот Polling URL, тем самым сообщая серверу, что он уже получил. Сервер использует эту информацию для фильтрации дубликатов перед отправкой новых данных.
Как это работает
Система работает следующим образом:
- Инициализация: Клиент получает первую партию потоковых результатов. Сервер генерирует идентификаторы для этих результатов и кодирует их в State String.
- Передача состояния: State String встраивается в Polling URL и отправляется клиенту вместе с результатами и клиентским кодом (например, JavaScript/AJAX) для выполнения периодических запросов.
- Запрос обновлений: Клиент периодически (например, каждые 30-60 секунд) отправляет запрос на сервер, используя Polling URL.
- Дедупликация: Сервер извлекает State String, получает новые результаты из индекса, сравнивает их идентификаторы с теми, что в State String, и удаляет дубликаты.
- Обновление: Сервер отправляет только новые результаты и обновленный Polling URL (с добавленными новыми идентификаторами).
Актуальность для SEO
Средняя. Технологии потокового поиска и обновления контента в реальном времени (например, в Новостях, блоках «Последние результаты», социальных лентах) остаются актуальными. Описанный механизм дедупликации с управлением состоянием на стороне клиента является надежным инфраструктурным решением для повышения эффективности и масштабируемости подобных систем.
Важность для SEO
Патент имеет минимальное значение (2/10) для практического SEO. Это чисто технический, инфраструктурный патент. Он не описывает факторы ранжирования или методы оценки качества контента. Он объясняет механизм доставки контента в специфических блоках выдачи (Streaming Search), но не дает SEO-специалистам прямых рычагов влияния на этот процесс, кроме понимания того, как Google технически обрабатывает дубликаты в реальном времени.
Детальный разбор
Термины и определения
- Client-Side Streaming Code (Клиентский код для стриминга)
- Исполняемый код (например, JavaScript, использующий AJAX), отправляемый сервером клиенту. Он инструктирует браузер периодически запрашивать обновления у сервера с помощью Polling URL без перезагрузки всей страницы.
- Content ID (Идентификатор контента)
- Уникальный идентификатор (например, 64-битный хеш), сгенерированный на основе содержимого документа (или его части). Используется для обнаружения дубликатов контента, даже если он размещен на разных URL (например, синдицированные новости).
- De-duplication (Дедупликация)
- Процесс сравнения новых результатов с уже отправленными (на основе State String) и удаления дубликатов по Doc ID или Content ID.
- Doc ID (Идентификатор документа)
- Уникальный идентификатор (например, 64-битный хеш), сгенерированный на основе URL документа. Используется для обнаружения дубликатов страниц с идентичными адресами.
- Polling URL (URL для опроса)
- Специально сформированный URL, который клиент использует для периодического запроса новых потоковых результатов. Он содержит исходные поисковые термины и State String.
- State String (Строка состояния)
- Закодированная строка, содержащая Doc IDs и Content IDs всех потоковых результатов, ранее отправленных клиенту в текущей сессии. Позволяет серверу понять, какой контент клиент уже получил.
- Streaming Results / Recent Results (Потоковые / Недавние результаты)
- Набор результатов поиска, отобранный на основе свежести (недавно проиндексированные, созданные или измененные) и предназначенный для обновления в реальном времени на странице выдачи.
Ключевые утверждения (Анализ Claims)
Claim 1 (Независимый пункт): Описывает основной процесс предоставления недублирующихся результатов поиска с фокусом на идентификацию контента.
- Система получает первый запрос.
- Получает первый список результатов.
- Генерирует Polling URL, включающий уникальные идентификаторы для каждого результата из первого списка, причем каждый идентификатор представляет контент результата (Content ID).
- Отправляет первый ответ клиенту, включающий результаты и Polling URL.
- [Позже, используя Polling URL] Система идентифицирует поисковые термины и уникальные идентификаторы из Polling URL.
- Получает второй список результатов.
- Идентифицирует уникальные идентификаторы (представляющие контент) результатов второго списка, которые совпадают с идентификаторами из Polling URL (т.е. дубликаты).
- Обновляет второй список, удаляя результаты с совпадающими идентификаторами.
- Модифицирует Polling URL, добавляя идентификаторы оставшихся (новых) результатов.
- Отправляет второй ответ клиенту с обновленным списком и модифицированным Polling URL.
Ядром изобретения является использование Polling URL для передачи состояния (полученного контента) от клиента обратно к серверу, что позволяет серверу эффективно выполнять дедупликацию без хранения состояния сессии у себя (stateless operation).
Claim 4 (Зависимый): Уточняет, что генерация Polling URL также включает кодирование информации, идентифицирующей URL, связанные с первым списком результатов (т.е. Doc IDs). Это обеспечивает дедупликацию не только по контенту, но и по адресу.
Claim 7 (Зависимый от 6): Уточняет, что кодирование информации о контенте (генерация Content ID) включает вычисление хеша (hash) части контента каждого документа.
Claim 9 (Зависимый от 1): Уточняет, что первый ответ также содержит исполняемый код (Client-Side Streaming Code), который инструктирует клиента отправлять периодические запросы обновлений, используя Polling URL.
Где и как применяется
Патент описывает инфраструктурный механизм доставки контента, который затрагивает несколько этапов поиска.
INDEXING – Индексирование и извлечение признаков
Чтобы механизм потокового поиска работал, новый контент должен быть быстро проиндексирован. На этапе индексирования система должна присваивать временные метки (timestamps) и генерировать Doc ID (хеш URL) и Content ID (хеш контента).
RANKING – Ранжирование
Система использует специфический тип ранжирования для генерации Recent Results (Потоковых результатов). Это ранжирование фокусируется на свежести (recency) и релевантности запросу, отбирая контент, добавленный в индекс недавно (например, за последние 60 секунд).
RERANKING / METASEARCH – Переранжирование / Доставка
Основное применение патента. Механизм работает во время активной сессии пользователя на странице SERP. Он управляет доставкой обновлений внутри специального блока выдачи (Streaming Results block). Система получает свежих кандидатов и фильтрует их (De-Duplication), удаляя те результаты, которые уже были отправлены клиенту, основываясь на State String.
Входные данные:
- Polling URL, полученный от клиента (содержит Search Terms и текущий State String).
- Новые результаты из поискового индекса, соответствующие Search Terms (с их Doc IDs и Content IDs).
Выходные данные:
- Список новых (недубликативных) потоковых результатов.
- Обновленный Polling URL (с модифицированным State String).
На что влияет
- Конкретные типы контента: Влияет на контент, требующий отображения в реальном времени. Патент упоминает новостные статьи, посты в блогах, а также контент из социальных сетей (упоминаются Google+, Facebook, Twitter).
- Специфические запросы: Запросы, связанные с текущими событиями, трендами, новостями (QDF — Query Deserves Freshness).
- Форматы контента: Блоки выдачи, которые обновляются автоматически без перезагрузки страницы (Streaming Search Results).
Когда применяется
Алгоритм применяется при следующих условиях:
- Поисковая выдача (SERP) содержит блок потоковых результатов (Streaming Results).
- Клиент получил и выполняет Client-Side Streaming Code.
- Код инициирует периодический опрос (polling) сервера для получения обновлений по мере появления нового релевантного контента в индексе.
Пошаговый алгоритм
Этап 1: Инициализация сессии
- Запрос: Клиент отправляет поисковый запрос.
- Получение результатов: Сервер получает стандартные релевантные результаты и новейшие (Streaming) результаты из индекса.
- Генерация идентификаторов: Для новейших результатов сервер генерирует Doc IDs (на основе URL) и Content IDs (на основе хеша контента).
- Создание состояния: Сервер кодирует эти идентификаторы в State String.
- Создание Polling URL: Сервер формирует Polling URL, включающий поисковые термины и State String.
- Первая доставка: Сервер отправляет клиенту результаты, Polling URL и Client-Side Streaming Code.
- Отображение: Клиент отображает результаты и запускает код стриминга.
Этап 2: Обновление потока (Цикл)
- Ожидание: Клиентский код ждет заданный интервал (например, 30-60 секунд).
- Запрос обновлений: Код отправляет асинхронный запрос (AJAX) на сервер, используя Polling URL.
- Извлечение состояния: Сервер получает запрос и извлекает поисковые термины и State String. State String декодируется обратно в список идентификаторов.
- Получение новых данных: Сервер запрашивает у индекса новые результаты, появившиеся с момента последнего запроса.
- Дедупликация: Сервер генерирует Doc IDs и Content IDs для новых результатов и сравнивает их с идентификаторами из State String. Если найден дубликат (совпадение по Doc ID ИЛИ Content ID), результат отбрасывается.
- Ослабление дедупликации (Опционально): Если новых результатов недостаточно для поддержания потока, система может ослабить дедупликацию и разрешить отправку некоторых дубликатов.
- Обновление состояния: Сервер добавляет идентификаторы оставшихся (недубликативных) результатов в State String. При этом старые идентификаторы могут удаляться для контроля размера строки.
- Генерация нового Polling URL: Сервер создает новый Polling URL с обновленным State String.
- Доставка обновлений: Сервер отправляет новые результаты и новый Polling URL клиенту.
- Обновление отображения: Клиент добавляет новые результаты в блок стриминга и возвращается к шагу 1 (Ожидание).
Какие данные и как использует
Данные на входе
Система использует следующие типы данных для обеспечения своей работы:
- Технические факторы: URL документа. Критически важен для генерации Doc ID.
- Контентные факторы: Содержимое документа (текст). Используется для генерации Content ID.
- Временные факторы: Метки времени (timestamps) индексации, создания или модификации документа. Используются для определения, является ли результат «недавним» (Recent) и подлежит ли он включению в поток.
- Пользовательские факторы: Исходный запрос пользователя (Search Terms), передаваемый в Polling URL.
Какие метрики используются и как они считаются
- Doc ID: Уникальный идентификатор URL. Обычно рассчитывается как 64-битный хеш URL. Используется для предотвращения отправки одной и той же страницы дважды.
- Content ID: Уникальный идентификатор контента. Рассчитывается как 64-битный хеш содержимого документа или его значимой части. Используется для предотвращения отправки дублирующегося контента, размещенного на разных URL.
- Ограничения размера State String: Патент описывает методы контроля размера State String, чтобы он не превышал лимиты URL:
- Частичные хеши (Partial Hashes): Вместо полных 64-битных идентификаторов могут использоваться их части. Патент предполагает, что 21-битный поднабор может быть оптимальным компромиссом между размером строки и риском ложных срабатываний (коллизий).
- Временное ограничение (Time-based dropping): Хранение идентификаторов только за определенный период. Патент предлагает примеры: хранить Doc IDs за последнюю 1 минуту и Content IDs за последние 5 минут, исходя из предполагаемого объема внимания пользователя.
- Количественное ограничение: Хранение фиксированного числа идентификаторов (например, 10 Doc IDs и 50 Content IDs).
Выводы
Патент описывает внутренние инфраструктурные процессы Google без прямых рекомендаций для SEO. Он дает понимание технических механизмов, обеспечивающих работу потокового поиска.
- Инфраструктура и Масштабируемость: Основная цель патента — повышение эффективности и масштабируемости системы потокового поиска. Перенос управления состоянием (State String) на сторону клиента позволяет серверу не хранить данные сессий (stateless operation), что критично при большом количестве пользователей.
- Два уровня дедупликации: Система использует два типа идентификаторов: Doc ID (по URL) и Content ID (по контенту). Это подтверждает способность Google эффективно распознавать и отфильтровывать не только полные дубликаты страниц, но и синдицированный или скопированный контент в реальном времени.
- Фокус на свежести: Механизм предназначен для доставки контента, который был недавно проиндексирован. Это подчеркивает важность скорости индексации для попадания в блоки реального времени (QDF-запросы).
- Оптимизация передачи данных: Использование частичных хешей (например, 21 бит) и временных ограничений (1-5 минут) для контроля размера State String показывает, как Google балансирует между точностью дедупликации и ограничениями веб-инфраструктуры (длина URL).
Практика
Патент является инфраструктурным и не дает прямых практических выводов для SEO-ранжирования. Однако он предоставляет важный контекст для работы со свежим контентом и понимания обработки дубликатов.
Best practices (это мы делаем)
- Обеспечение максимальной скорости индексации: Для попадания в потоковые результаты (Streaming Search) контент должен быть проиндексирован мгновенно. Хотя патент не описывает, как этого достичь, он подчеркивает важность этого аспекта. Используйте чистую техническую оптимизацию, XML Sitemaps (включая News Sitemaps) и Indexing API.
- Фокус на создании уникального контента: Использование Content ID для дедупликации означает, что Google активно фильтрует неуникальный контент в потоковой выдаче. Если вы публикуете новость, добавление уникальной ценности (аналитика, комментарии, дополнительные факты) критично, чтобы ваш контент не был сочтен дубликатом синдицированного источника и был показан в потоке.
Worst practices (это делать не надо)
- Публикация синдицированного контента без изменений: Если вы используете контент из внешних источников (например, новостных агентств) и публикуете его без существенной переработки, механизм Content ID, скорее всего, идентифицирует его как дубликат. В потоковой выдаче приоритет может быть отдан только одной из копий.
- Массовый репостинг или копирование: Попытки заполнить потоковую выдачу идентичными сообщениями или скопированным контентом на разных URL будут неэффективны из-за дедупликации по Content ID.
Стратегическое значение
Патент не меняет фундаментальные принципы SEO, но дает техническое понимание того, как Google управляет потоками данных в реальном времени. Для новостных сайтов, медиа и контент-провайдеров, зависящих от освещения текущих событий (QDF), это подтверждает стратегическую важность скорости и уникальности. Система спроектирована так, чтобы предоставлять пользователю разнообразный и не повторяющийся поток информации.
Практические примеры
Сценарий: Дедупликация синдицированной новости
- Событие: Агентство Reuters публикует срочную новость. Google индексирует ее.
- Показ 1: Пользователь видит статью Reuters в потоке результатов. Сервер генерирует Content ID (например, Hash_R) и отправляет его пользователю в State String.
- Публикация копии: Через 2 минуты сайт CNN публикует ту же самую статью Reuters (идентичный текст) под другим URL. Google индексирует ее.
- Запрос обновления: Браузер пользователя запрашивает обновления, отправляя State String, содержащий Hash_R.
- Дедупликация: Сервер видит статью CNN как кандидата. Он вычисляет ее Content ID и получает Hash_R. Сервер сравнивает его с идентификаторами из State String, находит совпадение и исключает статью CNN из ответа.
- Результат: Пользователь не видит ту же самую новость повторно, даже если она пришла из другого источника (CNN).
Вопросы и ответы
Влияет ли этот патент на ранжирование сайтов?
Нет, напрямую не влияет. Патент описывает исключительно механизм доставки и дедупликации результатов, которые уже были отобраны и ранжированы системой поиска (вероятно, с сильным уклоном в свежесть). Он не содержит информации о том, как улучшить позиции сайта или повысить качество контента в глазах Google.
Что такое Doc ID и Content ID и в чем разница?
Doc ID — это идентификатор (хеш) URL документа. Он уникален для каждого адреса. Content ID — это идентификатор (хеш) содержимого документа. Если один и тот же текст размещен на разных URL, у них будут разные Doc IDs, но одинаковый Content ID. Google использует оба идентификатора для обеспечения максимальной чистоты потока результатов.
Как Google обрабатывает синдицированный контент согласно патенту?
Синдицированный контент (например, новость от информагентства, опубликованная на нескольких сайтах) будет идентифицирован как дубликат с помощью Content ID. В потоковой выдаче система стремится показать только одну копию такого контента, отфильтровывая остальные. Это подчеркивает важность создания уникальной добавленной ценности при публикации новостей.
Для каких типов поиска этот механизм актуален?
Он актуален для запросов, где важна свежесть информации (QDF) и где выдача обновляется в реальном времени. Это касается блоков «Последние результаты», новостного поиска, освещения живых событий (спортивные матчи, выборы, конференции) и мониторинга социальных сетей (патент упоминает Twitter, Facebook, Google+).
Что означает управление состоянием на стороне клиента (Client State)?
Это означает, что информация о том, какие результаты пользователь уже получил, хранится не на сервере Google, а передается клиенту (браузеру) в виде закодированной строки (State String) внутри Polling URL. Это позволяет Google экономить ресурсы и масштабировать систему, так как серверу не нужно отслеживать сессию каждого пользователя (stateless operation).
Почему Google ограничивает размер строки состояния (State String)?
Поскольку State String передается как часть URL, она ограничена максимальной длиной URL, поддерживаемой браузерами и серверами. Для контроля размера Google использует оптимизации: хранит только частичные хеши (например, 21 бит вместо 64) и удаляет старые идентификаторы (например, старше 5 минут для Content ID).
Поможет ли этот патент лучше оптимизировать сайт под Google Новости или QDF?
Косвенно. Патент не дает советов по оптимизации, но он показывает, как строго Google относится к дубликатам контента в потоках реального времени. Для успеха в Google Новостях и подобных блоках необходимо фокусироваться на скорости индексации и уникальности публикуемого материала, чтобы избежать дедупликации по Content ID.
Может ли дубликат все же быть показан пользователю?
Да, в двух случаях, описанных в патенте. Во-первых, если идентификатор был удален из State String из-за ограничений по времени или размеру (например, старше 5 минут). Во-вторых, если системе не хватает новых уникальных результатов для поддержания потока, она может «ослабить» дедупликацию и отправить дубликат.
Как быстро контент должен быть проиндексирован, чтобы попасть в этот поток?
Чрезвычайно быстро. Механизм работает с результатами, которые были добавлены в индекс совсем недавно. В патенте упоминаются примеры запроса результатов, добавленных за последние 60 секунд. Это требует использования самых быстрых методов индексации.
Используется ли этот механизм дедупликации в стандартной веб-выдаче?
Патент фокусируется именно на потоковых (Streaming) результатах, которые обновляются динамически. Стандартная статическая веб-выдача («10 синих ссылок») использует другие механизмы дедупликации и кластеризации, которые происходят на этапах индексирования и ранжирования, а не во время доставки контента пользователю в реальном времени.