[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

RU2666331C1 - Способ и система для создания оффлайн страницы результатов поиска - Google Patents

Способ и система для создания оффлайн страницы результатов поиска Download PDF

Info

Publication number
RU2666331C1
RU2666331C1 RU2017111250A RU2017111250A RU2666331C1 RU 2666331 C1 RU2666331 C1 RU 2666331C1 RU 2017111250 A RU2017111250 A RU 2017111250A RU 2017111250 A RU2017111250 A RU 2017111250A RU 2666331 C1 RU2666331 C1 RU 2666331C1
Authority
RU
Russia
Prior art keywords
serp
offline
search
query
index
Prior art date
Application number
RU2017111250A
Other languages
English (en)
Inventor
Роман Владимирович Халкечев
Андрей Григорьевич Плахов
Иван Георгиевич Яников
Original Assignee
Общество С Ограниченной Ответственностью "Яндекс"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью "Яндекс" filed Critical Общество С Ограниченной Ответственностью "Яндекс"
Priority to RU2017111250A priority Critical patent/RU2666331C1/ru
Priority to US15/785,719 priority patent/US10713308B2/en
Application granted granted Critical
Publication of RU2666331C1 publication Critical patent/RU2666331C1/ru
Priority to US16/891,323 priority patent/US11347815B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/243Natural language query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Изобретение относится к области вычислительной техники и компьютерных технологий. Технический результат заключается в повышении эффективности обработки поискового запроса. Технический результат достигается за счет получения поискового запроса, определения того, хранится ли поисковый запрос в индексе оффлайн запросов путем сравнения поискового запроса с одним или несколькими сохраненными оффлайн поисковыми запросами, в ответ на определение того, что поисковый запрос совпадает с данным оффлайн поисковым запросом, определениия указателя на шаблон оффлайн SERP, связанного с данным оффлайн поисковым запросом, определения, на основе указателя на шаблон оффлайн SERP, соответствующего шаблона оффлайн SERP, сохраненного в индексе шаблонов оффлайн SERP, извлечения списка из одного или нескольких упорядоченных указателей на элементы, содержащих соответствующий шаблон оффлайн SERP, извлечения соответствующего элемента SERP по меньшей мере из одного индекса элементов SERP, создания оффлайн SERP путем компиляции извлеченных элементов SERP и отображения оффлайн SERP на электронном устройстве. 2 н. и 19 з.п. ф-лы, 14 ил., 2 табл.

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0001] Настоящая технология относится к области создания страницы результатов поиска (SERP). Конкретнее, настоящая технология относится к способу и системе создания оффлайн SERP.
УРОВЕНЬ ТЕХНИКИ
[0002] Различные глобальные или локальные сети связи (Интернет, Всемирная Паутина, локальные сети и подобные им) предлагают пользователю большой объем информации. Информация включает в себя контекстуальные разделы, такие как, среди прочего, новости и текущие события, карты, информация о компаниях, финансовая информация и ресурсы, информация о траффике, игры и информация развлекательного характера. Пользователи используют множество клиентских устройств (настольный компьютер, портативный компьютер, ноутбук, смартфон, планшеты и подобные им) для получения доступа к богатому информационному контенту (например, изображениям, аудио- и видеофайлам, анимированным изображениям и прочему мультимедийному контенту подобных сетей).
[0003] В общем случае, пользователь может получить доступ к ресурсу через сеть передачи данных двумя основными способами. Данный пользователь может получить доступ к конкретному ресурсу напрямую, введя адрес ресурса (обычно URL или Единый указатель ресурса, например www.webpage.com), или же выбрав ссылку в электронном сообщении или на другом веб-ресурсе. В другом случае пользователь может выполнить поиск с помощью поисковой системы для нахождения желаемого ресурса. Последнее особенно подходит для тех случаев, когда пользователю известна интересующая его тематика, но неизвестен конкретный адрес интересующего ресурса.
[0004] Существует множество доступных пользователю поисковых систем. Некоторые из них считаются универсальными поисковыми системами (такие как Яндекс™, Google™, Yahoo!™ и подобные им). Другие считаются вертикальными поисковыми системами - например, поисковые системы, нацеленные на определенную тему поиска, такие как Momondo™, поисковая система для поиска авиаперелетов.
[0005] Вне зависимости от того, какая поисковая система используется, поисковая система обычно способна получать поисковый запрос пользователя, осуществлять поиск и возвращать упорядоченную страницу результатов поиска (SERP) пользователю.
[0006] Например, обращаясь к Фиг. 1, пользователь использует поисковую систему Яндекс™ для поиска информации о хоккейной команде. Пользователь мог ввести первый поисковый запрос 502 ("Montreal Canadiens"). Пользователю выводится SERP, снимок экрана с которой представлен на Фиг. 1 как снимок 100 экрана, SERP, представленная на снимке 100 экрана, реализована в соответствии с известными способами.
[0007] На снимке 100 экрана пользователь может видеть несколько стандартных полей. Среди этих полей есть интерфейс 102 запроса и интерфейс 104 результатов поиска. Основной задачей интерфейса 102 запроса является предоставление возможности пользователю (не показан) вводить свой запрос или «поисковый вопрос» (которым, в данном случае, является словосочетание "Montreal Canadiens"). Основной задачей интерфейса 104 результатов поиска является предоставление результатов поиска, отвечающих пользовательскому запросу, который был введен в интерфейс 102 запроса.
[0008] В интерфейсе 104 поисковых результатов показана первая SERP 106, обладающая, среди прочего, четырьмя поисковыми результатами, а именно - первым поисковым результатом 108, который связан с веб-ресурсом Wikipedia™, вторым поисковым результатом 110, который связан с веб-ресурсом National Hockey League™, третьим поисковым результатом 112, который связан с веб-ресурсом Wikipedia, и четвертым поисковым результатом 114, который связан с веб-ресурсом Twitter™. То, как отображаются поисковые результаты, хорошо известно в данной области техники и не будет описано далее. Достаточно будет упомянуть, исключительно в качестве примера, что первый поисковый результат 108 включает в себя заголовок 116, единый указатель ресурса (URL) 118, сниппет 120 и фавикон 122, связанные с веб-ресурсом Wikipedia™.
[0009] В другом примере, со ссылкой на Фиг. 2, предполагается, что пользователь ввел (с помощью интерфейса 102 запросов) второй поисковый запрос 504 ("habs", что является сленговым названием хоккейной команды Montreal Canadiens™). Пользователю выводится страница результатов поиска (SERP), снимок экрана с которой представлен на Фиг. 2, в общем случае представленный под номером 200. На снимке 200 экрана пользователь может видеть несколько стандартных полей. Среди этих полей есть: интерфейс 102 запроса и интерфейс 104 результатов поиска. В интерфейсе 104 поисковых результатов показана вторая SERP 206, обладающая, среди прочего, тремя поисковыми результатами, а именно - первым поисковым результатом 208, который связан с веб-ресурсом Wikipedia™, вторым поисковым результатом 210, который связан с веб-ресурсом amazinghabs.com и третьим поисковым результатом 212, который связан с веб-ресурсом allabouthockey.com. Первый поисковый результат 208 включает в себя заголовок 216, единый указатель ресурса (URL) 218, сниппет 220 и фавикон 222, связанные с веб-ресурсом Wikipedia™.
[00010] Излишне упоминать, что связь с сетью передачи данных должна поддерживаться между клиентским устройством и сервером поисковой системы для того, чтобы сервер поисковой системы мог получать запросы и передавать поисковые результаты клиентскому устройству. Таким образом, в конкретных условиях, в которых отсутствует соединение (или большая задержка и медленное соединение), поисковая система может не получать введенный поисковый запрос или не передавать созданную SERP клиентскому устройству для отображения, что может вызывать у пользователя по меньшей мере недовольство.
[00011] В общем случае, существует несколько компьютерных походов к созданию оффлайн SERP на клиентском устройстве. Например, простой подход заключается в использовании кэша браузерного приложения клиентского устройства. Тем не менее, использование кэша ограничивается ранее введенными поисковыми запросами, и он не может быть использован, если введенный поисковый запрос отличается от заранее введенного поискового запроса.
[00012] Патентная заявка US 2016/0055203 описывает различные способы оффлайн выбора записей для избежания негативных последствий задержки. В одном варианте осуществления настоящей технологии, способ включает в себя получение поискового запроса от клиентского устройства через сеть и, в ответ на полученный поисковый запрос, определение того, соответствует ли полученный поисковый запрос одной или нескольким записям в оффлайн содержимом. Записи оффлайн содержимого заранее определяются до получения поискового запроса. В ответ на определение того, что полученный поисковый запрос соответствует по меньшей мере одной записи оффлайн содержимого, способ включает в себя извлечение и предоставление по меньшей мере одной записи с оффлайн содержимым клиентскому устройству через сеть.
[00013] Патентная заявка US 2016/0055259 описывает способ и систему представления краткого изложения содержимого поисковых результатов. В одном примере, связанный с поисковым запросом ввод получают от пользователя. Один или несколько поисковых результатов получают на основе поискового запроса. Получают краткое изложение содержимого в отношении по меньшей мере одного из одного или нескольких поисковых результатов. Страницу результатов поиска представляют пользователю в ответ на ввод. Страница результатов поиска включает в себя один или несколько поисковых результатов и по меньшей мере часть краткого изложения содержимого.
[00014] Патентная заявка US 2016/0055259 описывает способ и систему, которые выполняют оффлайн поиск статьи. В одном аспекте технологии, она включает в себя получение поискового запроса, определение того, был ли ранее введен поисковый запрос, если поисковый запрос был введен заранее, извлечение ранее сохраненного набора результатов, определение того, удовлетворяет ли ранее сохраненный набор результатов по меньшей мере одному условию, и, если ранее сохраненный набор результатов удовлетворяет по меньшей мере одному условию, вывод заранее сохраненного набор результатов.
РАСКРЫТИЕ
[00015] Задачей предлагаемой технологии является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.
[00016] Изобретатели разработали несколько вариантов осуществления настоящей технологии, принимая во внимание по меньшей мере один недостаток, присущий известному уровню техники. Например, несмотря на то, что на существующем уровне техники "предварительная загрузка" SERP и соответствующих запросов на клиентское устройство обладает своими преимуществами и способствует представлению оффлайн SERP, тем не менее, она обладает некоторыми недостатками. Например, из-за ограниченного доступного пространства на клиентском устройстве для хранения множества страниц результатов поиска, сложно достичь приемлемого охвата для всех возможных поисковых запросов, которые могут быть получены клиентским устройством в будущем в режиме оффлайн или в зоне с низкой скоростью сетевого соединения.
[00017] При разработке настоящей технологии, изобретатели обратили внимание на то, что элементы, образующие конкретную SERP (например, заголовки, URL, сниппеты, фавиконы и так далее) не обязательно являются уникальными для каждой SERP и могут быть повторно использованы на множестве SERP. Возвращаясь к Фиг. 1 и 2, можно заметить, что даже для двух абсолютно разных поисковых запросов ("Montreal Canadiens" и "habs"), некоторые элементы SERP являются одинаковыми (или "общими") для первой и второй SERP 106 и 206. Например, фавикон, связанный с веб-ресурсом Wikipedia™, отображается в общей сложности три раза на SERP 106 и 206. В другом примере, заголовок и URL для первого результата 108 поиска на SERP 106 совпадают с первым результатом поиска 208 на SERP 206.
[00018] Таким образом, настоящая технология была разработана на основе предположения о том, что путем удаления дубликатов элементов SERP, большее количество страниц результатов поиска может быть заранее загружено на клиентское устройство для достижения лучшей зоны охвата.
[00019] Одним объектом настоящей технологии является способ обработки поискового запроса, способ выполняется на электронном устройстве, электронное устройство сохраняет в постоянном хранилище оффлайн базу данных результатов запросов, оффлайн база данных результатов запросов включает в себя: индекс оффлайн запросов, хранящий один или несколько оффлайн поисковых запросов, каждый из одного или нескольких оффлайн поисковых запросов связан с соответствующим указателем на шаблон оффлайн страницы результатов поиска (SERP); индекс шаблонов оффлайн SERP хранит один или несколько шаблонов оффлайн SERP, каждый из одного или нескольких шаблонов оффлайн SERP включает в себя список из одного или нескольких указателей на элементы; по меньшей мере один индекс элементов SERP хранит множество элементов SERP, и каждый элемент SERP связан по меньшей мере с одним или несколькими указателями на элементы, множество элементов SERP организовано с учетом соответствующего типа элемента SERP; способ включает в себя: получение поискового запроса от пользователя, связанного с электронным устройством; определение того, хранится ли поисковый запрос в индексе оффлайн запросов путем сравнения поискового запроса с одним или несколькими сохраненными оффлайн поисковыми запросами; в ответ на определение того, что поисковый запрос совпадает с данным оффлайн поисковым запросом, определение указателя на шаблон оффлайн SERP, связанного с данным оффлайн поисковым запросом; определение, на основе указателя на шаблон оффлайн SERP, соответствующего шаблона оффлайн SERP, сохраненного в индексе шаблонов оффлайн SERP; получение доступа к списку, связанному с соответствующим шаблоном оффлайн SERP; извлечение, для каждого из одного или нескольких указателей на элементы из списка, соответствующего элемента SERP по меньшей мере из одного индекса элементов SERP; создание оффлайн SERP путем компиляции извлеченных элементов SERP; и отображение оффлайн SERP на электронном устройстве.
[00020] В некоторых вариантах осуществления способа, один или несколько оффлайн поисковых запросов хранятся в массиве в алфавитном порядке и далее кластеризуются на один или несколько кластеров оффлайн поисковых запросов, каждый из которых включает в себя подмножество сохраненных оффлайн поисковых запросов, начинающихся с одинаковых первых N символов.
[00021] В некоторых вариантах осуществления способа, оффлайн база данных результатов запросов далее включает в себя индекс частичных оффлайн запросов, хранящий один или несколько уникальных наборов символов, созданных на основе первых N символов одного или нескольких оффлайн поисковых запросов, каждый из одного или нескольких уникальных наборов символов связан с соответствующим указателем на кластер запросов.
[00022] В некоторых вариантах осуществления способа, до определения того, сохранен ли поисковый запрос в индексе оффлайн запросов, способ далее включает в себя: парсинг (синтаксический анализ) части поискового запроса, часть включает в себя первые N символов поискового запроса; определение того, хранится ли часть в индексе частичных оффлайн запросов, путем сравнения части с одним или несколькими наборами символов; в ответ на определение того, что часть совпадает с данным набором символов, определение соответствующего указателя на кластер; и получение доступа к данному кластеру оффлайн поиска на основе данного указателя на кластер запросов.
[00023] В некоторых вариантах осуществления способа, определение того, хранится ли поисковый запрос в индексе оффлайн запросов, включает в себя определение того, хранится ли поисковый запрос в данном оффлайн кластере поисковых запросов.
[00024] В некоторых вариантах осуществления способа, каждый из одного или нескольких оффлайн поисковых запросов обладает уникальным значением позиции запроса в индексе оффлайн запросов; каждый из одного или нескольких шаблонов SERP соответствует соответствующему оффлайн поисковому запросу; и каждый из одного или нескольких шаблонов SERP хранится в индексе оффлайн шаблонов SERP в порядке, определенном на основе значения позиции запроса в соответствующем оффлайн поисковом запросе.
[00025] В некоторых вариантах осуществления способа, соответствующий шаблон оффлайн SERP содержит по меньшей мере два указателя на элементы, каждый из которых связан с соответствующими элементами SERP, один из по меньшей мере двух указателей элементов обладает наименьшим значением позиции указателя на элемент в соответствующем шаблоне оффлайн SERP, и другой из по меньшей мере двух указателей на элементы обладает наибольшим значением позиции указателя на элемент в соответствующем шаблоне оффлайн SERP.
[00026] В некоторых вариантах осуществления способа, указатель на шаблон оффлайн SERP включает в себя индикацию на указатель элемента, обладающий наименьшим значением позиции в соответствующем шаблоне SERP.
[00027] В некоторых вариантах осуществления способа, извлечение соответствующего элемента SERP включает в себя последовательное извлечение соответствующих элементов SERP, начиная с соответствующего элемента SERP, связанного с указателем на элемент, обладающим наименьшим значением позиции, и заканчивая после извлечения соответствующего элемента SERP, связанного с соответствующим указателем на элемент, обладающим наибольшим значением позиции.
[00028] В некоторых вариантах осуществления способа, по меньшей мере один индекс элементов SERP включает в себя множество индексов элементов SERP, каждый из множества индексов элементов SERP хранит элементы SERP конкретного соответствующего типа элементов SERP.
[00029] В некоторых вариантах осуществления способа, компиляция извлеченных элементов SERP включает в себя последовательную компиляцию элемента SERP, связанного с указателем на элемент, обладающим наименьшим значением позиции, до элемента SERP, связанного с указателем на элемент, обладающим наибольшим значением позиции.
[00030] В некоторых вариантах осуществления способа, множество индексов элементов SERP включает в себя: индекс элементов единого локатора ресурсов; индекс элементов заголовка; индекс элементов сниппета; индекс элементов фавикона; и индекс элементов изображения.
[00031] В некоторых вариантах осуществления способа, один или несколько шаблонов оффлайн SERP включают в себя первый шаблон оффлайн SERP и второй шаблон оффлайн SERP, число указателей на элементы первого шаблона оффлайн SERP, которые отличаются от числа указателей на элементы второго шаблона оффлайн SERP.
[00032] В некоторых вариантах осуществления способа, оффлайн база данных результатов запросов была создана и заранее загружена в постоянное хранилище сервером поисковой системы с помощью сети передачи данных до выполнения способа.
[00033] В некоторых вариантах осуществления способа, оффлайн база данных результатов запросов была создана на основе SERP, заранее созданной сервером поисковой системы на основе поисковых запросов пользователей с третьей стороны.
[00034] В некоторых вариантах осуществления способа, по меньшей мере один индекс шаблонов оффлайн SERP хранит заранее определенное число шаблонов оффлайн SERP, заранее определенное число было определено оператором сервера поисковой системы для удовлетворения конкретного числа поисковых запросов от пользователя.
[00035] В некоторых вариантах осуществления способа, каждый шаблон оффлайн SERP включает в себя заранее определенное число указателей на элементы.
[00036] В некоторых вариантах осуществления способа, определение того, сохранен ли поисковый запрос в индексе поисковых запросов осуществляется в ответ на определение того: что отсутствует связь между электронным устройством и сервером поисковой системы, с которым электронное устройство соединяется через сеть передачи данных; или что существует медленное соединение между электронным устройством и сервером поисковой системы.
[00037] Другим объектом настоящей технологии является электронное устройство, выполненное с возможностью обрабатывать поисковый запрос, электронное устройство включает в себя: оффлайн базу данных поисковых результатов в постоянном хранилище, оффлайн база данных поисковых результатов включает в себя: индекс оффлайн запросов, хранящий один или несколько оффлайн поисковых запросов, каждый из одного или нескольких оффлайн поисковых запросов связан с соответствующим указателем на шаблон оффлайн страницы результатов поиска (SERP); индекс шаблонов оффлайн SERP хранит один или несколько шаблонов оффлайн SERP, каждый из одного или нескольких шаблонов оффлайн SERP включает в себя список из одного или нескольких указателей на элементы; по меньшей мере один индекс элементов SERP хранит множество элементов SERP, и каждый элемент SERP связан по меньшей мере с одним или несколькими указателями на элементы, множество элементов SERP организовано с учетом соответствующего типа элемента SERP; по меньшей мере один компьютерный процессор, выполненный с возможностью осуществлять:
получение поискового запроса от пользователя, связанного с электронным устройством; определение того, хранится ли поисковый запрос в индексе оффлайн запросов путем сравнения поискового запроса с одним или несколькими сохраненными оффлайн поисковыми запросами; в ответ на определение того, что поисковый запрос совпадает с данным оффлайн поисковым запросом, определение указателя на шаблон оффлайн SERP, связанного с данным оффлайн поисковым запросом; определение, на основе указателя на шаблон оффлайн SERP, соответствующего шаблона оффлайн SERP, сохраненного в индексе шаблонов оффлайн SERP; получение доступа к списку, связанному с соответствующим шаблоном оффлайн SERP; извлечение, для каждого из одного или нескольких указателей на элементы из списка, соответствующего элемента SERP по меньшей мере из одного индекса элементов SERP; создание оффлайн SERP путем компиляции извлеченных элементов SERP; и отображение оффлайн SERP на электронном устройстве.
[00038] Способ по п. 1, в котором оффлайн база данных результатов запросов была создана и заранее загружена в постоянное хранилище сервером с помощью сети передачи данных до выполнения способа.
[00039] В некоторых вариантах осуществления способа, определение того, сохранен ли поисковый запрос в индексе поисковых запросов осуществляется в ответ на определение того: что отсутствует связь между электронным устройством и сервером поисковой системы, с которым электронное устройство соединяется через сеть передачи данных; или что существует медленное соединение между электронным устройством и сервером поисковой системы.
[00040] В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
[00041] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной передачи данных между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый сервер" и "третий сервер" не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» сервер и «второй» сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
[00042] В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, которое выполняет процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[00043] Для лучшего понимания настоящей технологии, а также других ее аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[00044] На Фиг. 1 изображен снимок экрана, который отображает страницу результатов поиска (SERP), реализованную согласно существующим технологиям.
[00045] На Фиг. 2 изображен другой снимок экрана, который отображает страницу результатов поиска (SERP), реализованную согласно существующим технологиям.
[00046] На Фиг. 3 представлена система, которая подходит для реализации вариантов осуществления настоящей технологии и/или которая используется в сочетании с вариантами осуществления настоящей технологии.
[00047] На Фиг. 4 представлена схематическая иллюстрация оффлайн базы данных результатов запросов, относящейся к серверу системы, которая показана на Фиг. 3.
[00048] На Фиг. 5 представлена схематическая иллюстрация индекса поискового запроса, относящегося к оффлайн базе данных результатов запросов, показанной на Фиг. 4.
[00049] На Фиг. 6 представлена схематическая иллюстрация индекса элементов заголовка, относящегося к серверу системы, которая показана на Фиг. 4.
[00050] На Фиг. 7 представлена схематическая иллюстрация индекса шаблонов SERP, относящегося к оффлайн базе данных результатов запросов, показанной на Фиг. 4.
[00051] На Фиг. 8 представлена схематическая иллюстрация индекса частичных оффлайн запросов, относящегося к оффлайн базе данных результатов запросов, показанной на Фиг. 4.
[00052] На Фиг. 9 представлена схематическая иллюстрация электронного устройства системы, показанной на Фиг. 3.
[00053] На Фиг. 10 представлен пример процесса определения того, соответствует ли новый поисковый запрос записи в индексе частичных оффлайн запросов и индексе поисковых запросов оффлайн базы данных результатов запросов, который хранится на электронном устройстве, показанном на Фиг. 9.
[00054] На Фиг. 11 представлен пример процесса определения списка указателей на элементы, хранящегося в индексе шаблонов оффлайн SERP, относящегося к оффлайн базе данных результатов запросов, который хранится на электронном устройстве, показанном на Фиг. 9.
[00055] На Фиг. 12 представлен пример процесса извлечения элементов заголовка, сохраненных в индексе элементов заголовка, относящегося к оффлайн базе данных результатов запросов, который хранится на электронном устройстве, показанном на Фиг. 9.
[00056] На Фиг. 13 представлен снимок экрана оффлайн SERP, созданный в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[00057] На Фиг. 14 представлена блок-схема способа создания оффлайн SERP, выполняемого электронным устройством системы, изображенной на Фиг. 1, способ выполняется в соответствии с неограничивающими вариантами осуществления настоящей технологии.
ОСУЩЕСТВЛЕНИЕ
[00058] На Фиг. 3 представлена принципиальная схема системы 300, выполненной в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем. Важно иметь в виду, что нижеследующее описание системы 300 представляет собой описание показательных вариантов осуществления настоящей технологии. Таким образом, все последующее описание представлено только как описание иллюстративного примера настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций системы 300 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящей технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 300 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящей технологии, и в подобных случаях представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.
[00059] Все примеры и используемые здесь условные конструкции предназначены, главным образом, для того, чтобы помочь читателю понять принципы настоящей технологии, а не для установления границ ее объема. Следует также отметить, что специалисты в данной области техники могут разработать различные схемы, отдельно не описанные и не показанные здесь, но которые, тем не менее, воплощают собой принципы настоящей технологии и находятся в границах ее объема. Кроме того, для ясности в понимании, следующее описание касается достаточно упрощенных вариантов осуществления настоящей технологии. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.
[00060] Более того, все заявленные здесь принципы, аспекты и варианты осуществления настоящей технологии, равно как и конкретные их примеры, предназначены для обозначения их структурных и функциональных основ, вне зависимости от того, известны ли они на данный момент или будут разработаны в будущем. Таким образом, например, специалистами в данной области техники будет очевидно, что представленные здесь блок-схемы представляют собой концептуальные иллюстративные схемы, отражающие принципы настоящей технологии. Аналогично, любые блок-схемы, диаграммы переходного состояния, псевдокоды и т.п. представляют собой различные процессы, которые могут быть представлены на машиночитаемом носителе и, таким образом, использоваться компьютером или процессором, вне зависимости от того, показан явно подобный компьютер или процессор или нет.
[00061] Функции различных элементов, показанных на фигурах, включая функциональный блок, обозначенный как "процессор", могут быть обеспечены с помощью специализированного аппаратного обеспечения или же аппаратного обеспечения, способного использовать подходящее программное обеспечение. Когда речь идет о процессоре, функции могут обеспечиваться одним специализированным процессором, одним общим процессором или множеством индивидуальных процессоров, причем некоторые из них могут являться общими. В некоторых вариантах осуществления настоящей технологии, процессор может являться универсальным процессором, например, центральным процессором (CPU) или специализированным для конкретной цели процессором, например, графическим процессором (GPU). Более того, использование термина "процессор" или "контроллер" не должно подразумевать исключительно аппаратное обеспечение, способное поддерживать работу программного обеспечения, и может включать в себя, без установления ограничений, цифровой сигнальный процессор (DSP), сетевой процессор, интегральная схема специального назначения (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ПЗУ) для хранения программного обеспечения, оперативное запоминающее устройство (ОЗУ) и энергонезависимое запоминающее устройство. Также может быть включено другое аппаратное обеспечение, обычное и/или специальное.
[00062] С учетом этих примечаний, далее будут рассмотрены некоторые не ограничивающие варианты осуществления аспектов настоящей технологии.
[00063] Система 300 включает в себя электронное устройство 302. Электронное устройство 302 обычно связано с пользователем (не показан) и, таким образом, иногда может упоминаться как «клиентское устройство». Следует отметить, что тот факт, что электронное устройство 302 связано с пользователем, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, быть зарегистрированным, или чего-либо подобного.
[00064] В контексте настоящего описания, если конкретно не указано иное, «электронное устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами электронных устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как электронное устройство в настоящем контексте, может вести себя как сервер по отношению к другим электронным устройствам. Использование выражения «электронное устройство» не исключает возможности использования множества электронных устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода.
[00065] Электронное устройство 302 включает в себя постоянное хранилище 306. Постоянное хранилище 306 памяти может охватывать один или несколько носителей и в общем случае предоставляет место для хранения исполняемых на компьютере инструкций, выполняемых компьютером 304. Например, постоянное хранилище 306 может быть реализовано как машиночитаемый носитель информации, включая ПЗУ (ROM), жесткие диски (HDD), твердотельные накопители (SSD) и флеш-карты памяти.
[00066] Электронное устройство 302 включает в себя энергозависимую память 307. Энергозависимая память 307 может охватывать один или несколько носителей и в общем случае предоставляет место для временного хранения исполняемых на компьютере инструкций, которые выполняются процессором 304, на то время когда исполняемые на компьютере инструкции выполняются процессором 304. Например, энергозависимая память 307 может быть реализована как машиночитаемый носитель, включающий в себя ОЗУ (RAM).
[00067] Электронное устройство 302 включает в себя аппаратное и/или прикладное программное, и/или системное программное обеспечение (или их комбинацию), как известно в данной области техники, для использования поискового приложения 308. В общем случае, задачей браузерного приложения является предоставление пользователю 308, связанному с клиентским устройством 302, доступа к одному или нескольким веб-ресурсам. С этой целью поисковое приложение 308 включает в себя упомянутый интерфейс 102 запроса и интерфейс 104 результатов поиска.
[00068] Реализация поискового приложения 308 никак конкретно не ограничена. Один из примеров поискового приложения 308 может быть реализован доступе пользователя к веб-сайту, связанному с поисковой системой, для получения доступа к поисковому приложению 308. Например, поисковое приложение 308 может быть вызвано путем ввода URL www.yandex.ru, связанного с поисковой системой Yandex™.
[00069] В других вариантах осуществления настоящей технологии, не ограничивающих ее объем, поисковое приложение 308 может представлять собой поисковое приложение на портативном устройстве. Для тех случаев (но не только), когда электронное устройство 302 является портативным устройством, таким как, например, Samsung™ Galaxy™ SIII, электронное устройство 302 может использовать поисковое приложение Yandex™. Важно иметь в виду, что любое другое коммерчески доступное или собственное браузерное приложение может быть использовано для реализации вариантов осуществления настоящей технологии, не ограничивающих ее объем.
[00070] Электронное устройство 302 включает в себя интерфейс передачи данных (не показано) для двусторонней передачи данной через сеть 312 передачи данных через линию 310 передачи данных. В некоторых вариантах осуществления настоящей технологии, не ограничивающих ее объем, сеть 312 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящей технологии, сеть связи 312 может быть реализована иначе - в виде глобальной сети связи, локальной сети связи, частной сети связи и т.п.
[00071] Реализация линии 310 передачи данных никак конкретно не ограничена, и зависит от того, как именно реализовано электронное устройство 302. В качестве примера, но не ограничения, в данных вариантах осуществления настоящей технологии, когда электронное устройство 302 представляет собой беспроводное устройство связи (например, смартфон), линия 310 передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных сети 3G, линия передачи данных сети 4G, беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.).
[00072] Важно иметь в виду, что варианты осуществления электронного устройства 302, линии 310 передачи данных и сети 312 передачи данных даны исключительно в иллюстрационных целях. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления электронного устройства 302, линии 310 передачи данных и сети 312 передачи данных. Таким образом, представленные здесь примеры не ограничивают объем настоящей технологии.
[00073] Система 300 далее включает в себя сервер 314 поисковой системе (или просто "сервер 314"), соединенный с сетью 312 передачи данных. Сервер 314 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящего технического решения сервер 314 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 314 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящей технологии, не ограничивающем ее объем, сервер 314 является одиночным сервером. В других вариантах осуществления настоящей технологии, не ограничивающих ее объем, функциональность сервера 314 может быть разделена, и может выполняться с помощью нескольких серверов.
[00074] Вариант осуществления сервера 314 хорошо известен. Тем не менее, вкратце, сервер 314 содержит интерфейс связи (не показан), который настроен и выполнен с возможностью устанавливать соединение с различными элементами (например, электронным устройством 302 и другими устройствами, потенциально присоединенными к сети 312 передачи данных) через сеть 312 передачи данных. Аналогично электронному устройству 302, сервер 314 включает в себя серверную память 318, которая включает в себя один или несколько носителей и в общем случае предоставляет место для хранения исполняемых на компьютере программных инструкций, выполняемых серверным процессором 316. В качестве примера, серверная память 318 может быть реализована как физический машиночитаемый носитель, включая постоянное запоминающее устройство - ПЗУ (ROM) и/или оперативное запоминающее устройство - ОЗУ (RAM). Серверная память 318 может также включать в себя одно или несколько физических устройств хранения в форме, например, жестких дисков (HDD), твердотельных накопителей (SSD) или флеш-карт памяти.
[00075] В некоторых вариантах осуществления настоящей технологии, сервер 314 находится под контролем и/или управлением поставщика поисковой системы, например, компании ООО «Яндекс», расположенной по адресу: 119021, Россия, Москва, ул. Льва Толстого, дом 16. Тем не менее, сервер 314 может быть реализован иначе (например, через локальный поисковик и так далее). Сервер 314 выполнен с возможностью поддерживать индекс 324, который содержит указание на просмотренные поисковым роботом сетевые ресурсы (не показано), доступные через сеть 312 передачи данных.
[00076] Процесс заполнения и поддержания индекса 324 в общем случае известен как «просмотр поисковым роботом», когда приложение 322 поискового робота, содержащееся в серверной памяти 318 выполнено с возможностью «посещать» один или несколько сетевых ресурсов (не показано) через сеть 312 передачи данных и индексировать их содержимое (например, связывать данный сетевой ресурс с одним или несколькими ключевыми словами). В некоторых вариантах осуществления настоящей технологии, приложение 322 поискового робота поддерживает индекс 324 как «инвертированный индекс». Следовательно, приложение поискового робота выполнено с возможностью сохранять информацию о проиндексированных сетевых ресурсах в индексе 324.
[00077] Серверная память 318 содержит исполняемые на компьютере инструкции для выполнения приложения 320 для ранжирования серверным процессором 316. Когда сервер 314 получает поисковый запрос от поискового приложения 308 (например, «считаются ли брови волосами на лице?»), сервер 314 выполнен с возможностью выполнять приложение 320 для ранжирования. Приложение 320 для ранжирования выполнено с возможностью получать доступ к индексу 324 для получения указания на множество сетевых ресурсов, которые потенциально релевантны введенному поисковому запросу. В этом примере, приложение 320 для ранжирования далее выполнено с возможностью ранжировать таким образом полученные потенциально релевантные сетевые ресурсы таким образом, чтобы представлять их в ранжированном порядке на интерфейсе 103 результатов поиска в виде SERP (например, первой SERP 106, второй SERP 206), таким образом, чтобы SERP представляла больше релевантных сетевых ресурсов в верхней частей SERP (например, первый результат 108 поиска и второй результат 110 поиска на первой SERP 106).
[00078] Серверная память 318 далее включает в себя приложение 326 для создания базы данных. Приложение 326 для создания базы данных включает в себя исполняемые на компьютере программные инструкции, выполняемые серверным процессором 316, исполняемые на компьютере программные инструкции выполнены с возможностью создавать и заполнять оффлайн базу 328 данных результатов запросов (описано далее), поддерживаемую сервером 314.
Создание Оффлайн Базы Данных Результатов Запросов
[00079] Со ссылкой на Фиг 4, описан неограничивающий вариант осуществления оффлайн базы 328 данных результатов запросов, поддерживаемый сервером 314.
[00080] В качестве иллюстрации, то, как именно приложение 326 для создания базы данных заполняет оффлайн базу 328 данных результатов запросов, будет описано с помощью первого поискового запроса 502 ("Montreal Canadiens") и второго поискового запроса 504 ("habs"), а также первой SERP 106 и второй SERP соответственно. Важно иметь в виду, что это это сделано только в качестве примера, а не в качестве ограничения. Следует отметить, что приложение 326 для построения базы данных заполняет оффлайн базу 328 данных результатов запросов с помощью предыдущих запросов. Другими словами, приложение 326 для создания базы данных анализирует первый поисковый запрос 502 и второй поисковый запрос 504, которые были введены пользователями до заполнения приложением 326 для создания базы данных оффлайн базы 328 данных результатов запросов.
[00081] Начиная с общего вида, приложение 326 для создания базы данных выполнено с возможностью выполнять предварительную оценку первого поискового запроса 502 и второго поискового запроса 504. Конкретнее, приложение 326 для создания базы данных выполнено с возможностью определить, удовлетворяет ли каждый из первого поискового запроса 502 и второго поискового запроса 504 по меньшей мере одному условию, определенному оператором (не показано) сервера 314. В некоторых вариантах осуществления настоящей технологии, определение того, удовлетворяет ли каждый из первого поискового запроса 502 и второго поискового запроса 504 по меньшей мере одному условию, включает в себя определение частоты обработки каждого из первого поискового запроса 502 и второго поискового запроса 504 сервером 314. Например, если определено, что второй поисковый 504 находится среди, например, топ 150000 поисковых запросов, обработанных сервером 314 от пользователей с третьей стороны, первый поисковый запрос может считаться удовлетворяющим по меньшей мере первому условию.
[00082] В некоторых вариантах осуществления настоящей технологии, оффлайн база 328 данных результатов запросов является конкретной для региона оффлайн базой 328 данных результатов запросов. Например, при оценке того, удовлетворяет ли второй поисковый запрос 504 по меньшей мере первому условию, оффлайн база 328 данных результатов запросов выполнена с возможностью определить, находится ли второй поисковый запрос среди, например, топ 150000 поисковых запросов, обработанных сервером 314 в конкретном регионе, например, провинции Квебек (или Северная Германия или остров Бали в Индонезии).
[00083] Далее, с учетом того, что оба первый поисковый запрос 502 и второй поисковый запрос 504 удовлетворяют по меньшей мере первому условию, приложение 326 для создания базы данных выполнено с возможностью сохранения первого поискового запроса 502 и второго поискового запроса 504 в индексе 402 оффлайн запросов.
[00084] Со ссылкой на Фиг. 5 предлагается неограничивающий пример индекса 402 оффлайн запросов, заполненного с помощью одного или нескольких поисковых результатов 510, включая первый поисковый запрос 502 и второй поисковый запрос 504.
[00085] В одном варианте осуществления настоящей технологии, один или несколько сохраненных поисковых запросов 510 хранятся в алфавитном порядке без дубликатов в индексе 402 оффлайн запросов. Таким образом, каждый из одного или нескольких оффлайн поисковых запросов 510 обладает уникальным значением 516 позиции запроса в индексе оффлайн запросов. Например, первый поисковый запрос 502 обладает значением 512 позиции первого запроса, указывающим на то, что первый поисковый запрос 502 хранится как 66-ая запись в индексе 402 оффлайн запросов. Аналогично, второй поисковый запрос 504 обладает значением 514 позиции второго запроса, указывающим на то, что второй поисковый запрос 504 хранится как 33-ая запись в индексе 402 оффлайн запросов. Подразумевается, что один или несколько сохраненных поисковых запросов 510 может храниться в индексе 402 оффлайн запросов в любом виде.
[00086] Один или несколько сохраненных поисковых запросов 510 далее кластеризованы на один или несколько оффлайн кластеров 506 поисковых запросов. Например, один или несколько сохраненных поисковых запросов 510 кластеризованы, среди прочего, на первый оффлайн кластер 506А поисковых запросов, второй оффлайн кластер 506В поисковых запросов, третий оффлайн кластер 506С и четвертый оффлайн кластер 506D поисковых запросов.
[00087] С учетом того, что один или несколько сохраненных поисковых запросов 510 хранятся в алфавитном порядке, один или несколько сохраненных поисковых запросов 510 кластеризованы на основе первых двух байт одно или нескольких сохраненных поисковых запросов 510. Другими словами, каждый из одного или нескольких кластеров 506 поисковых запросов содержит подмножество из одного или нескольких сохраненных поисковых запросов 510, начиная с одинакового числа букв, которые можно закодировать в двух байтах, например, либо первые две буквы (в случае слов на английском языке), либо первая буква (в случае слов на русском языке). Например, второй оффлайн кластер 506В поисковых запросов содержит все сохраненные поисковые запросы, начиная с букв "ha" (тем самым включая второй поисковый запрос 504). Подразумевается, что один или несколько оффлайн кластеров 506 поисковых запросов может быть создан на основе большего или меньшего числа байт чем первые два байта из одного или нескольких сохраненных поисковых запросов 510. В некоторых вариантах осуществления настоящей технологии, каждый из таким образом созданных кластеров может быть сжат индивидуально в сжатый сохраненный кластер.
[00088] Дополнительное преимущество от некоторых вариантов осуществления технологии, где один или несколько сохраненных поисковых запросов 510 кластеризованы (с индивидуальным сжатием или без него), может включать в себя возможность индивидуально получать доступ к необходимому оффлайн кластеру поисковых запросов во время фазы эксплуатации (как будет более подробно описано далее), что позволяет более эффективно извлекать информацию во время фазы эксплуатации.
[00089] В некоторых вариантах осуществления настоящей технологии, до сохранения первого поискового запроса 502 и второго поискового запроса 504, приложение 326 для создания базы данных выполнено с возможностью опционально нормализовать каждый из первого поискового запроса 502 и второго поискового запроса 504 путем удаления артиклей (например, "the", "а" и т.д.), удаления пробелов, преобразования заглавных букв в прописные и так далее.
[00090] В некоторых вариантах осуществления настоящей технологии, как часть сохранения первого поискового запроса 502 и второго поискового запроса 504, приложение 326 для создания базы данных далее выполнено с возможностью сохранять указание на общий весовой коэффициент интереса (не показано), связанный с первым поисковым запросом 502 и вторым поисковым запросом 504. В контексте настоящей технологии, термин "общий весовой коэффициент интереса" относится к параметру, указывающему на общую популярность данного сохраненного поискового запроса (среди других запросов, которые были сохранены приложением 326 для создания базы данных), который может быть определен на основе числа раз, когда данный поисковый запрос поступает с третьей стороны на сервер 314.
[00091] В отношении Фиг. 4, часть процесса сохранения первого и второго поисковых запросов 502, 504 в индексе 402 оффлайн запросов, приложение 326 для создания базы данных также выполнено с возможностью заполнять один или несколько индексов 406 элементов SERP. В контексте настоящей технологии, термин "элемент SERP" относится к элементам, которые составляют данный поисковый результат на SERP. Например, для данного поискового результата на SERP, элемент SERP может включать в себя: URL результата, заголовок результата, сниппет результата, фавикон результата, одно или несколько изображений, связанные с результатом, объектные карты, виджеты и так далее.
[00092] То, как именно приложение 326 для создания базы данных парсит и сохраняет различные элементы SERP из первой и второй SERP 106 и 206, никак не ограничено, и может, например, выполняться путем анализа метаданных первой и второй SERP 106 и 206. В некоторых вариантах осуществления настоящей технологии, приложение 326 для создания базы данных выполнено с возможностью парсить различные элементы SERP в конкретном порядке, например, сначала парсить элементы первого поискового результата 208, а далее переходить ко второму поисковому результату 210. В некоторых вариантах осуществления настоящей технологии, приложение 326 для создания базы данных выполнено с возможностью парсить элементы SERP только подмножества поисковых результатов, содержащихся на SERP, например, двух верхних поисковых результатов (или любого другого числа N верхних результатов).
[00093] В некоторых вариантах осуществления настоящей технологии, приложение 326 для создания базы данных выполнено с возможностью применять с помощью оператора сервер 314 один или несколько критериев при парсинге различных элементов SERP. Например, один критерий будет инициировать приложение 326 для создания базы данных парсить только (и сохранять в одном или нескольких индексах 406 элементов SERP) заранее определенное количество изображений, которое содержится на SERP, связанной с одним или несколькими хранящимися поисковыми запросами 510. Эти заранее определенные количества изображений могут, например, представлять собой фотографии топ 1000 звезд шоу-бизнеса, о которых ищется информация. В другом варианте, другой критерий будет инициировать приложение 326 для создания базы данных ограничивать текст, содержащийся в сниппете, карточке объекта и так далее, например, выбирать первые 150 слов, краткое изложение, контактную информацию (например, телефонный номер) или адрес, связанный с одним или несколькими сохраненными поисковыми запросами 510.
[00094] В конкретном примере предоставлен индекс 406А элементов заголовка, индекс 406В элементов URL, индекс 406С элементов сниппета, индекс 406D элементов фавикона и индекс элементов изображения (не показано). Подразумевается, что оффлайн база 328 данных результатов запросов включает в себя больше или меньше, чем пять индексов элементов. Кроме того, несмотря на то, что они показаны как отдельные индексы, индекс 406А элементов заголовка, индекс 406В элементов URL, индекс 406С элементов сниппета, индекс 406D элементов фавикона и индекс элементов изображения (не показано) могут быть реализованы как единый индекс. Например, один индекс может включать в себя первый субмассив, хранящий элементы SERP, сохраненные в индексе 406А элементов заголовка, второй субмассив, хранящий элементы SERP, сохраненные в индексе 406В элементов URL, третий субмассив, хранящий элементы SERP, сохраненные в индексе 406С элементов сниппета, четвертый субмассив, хранящий элементы SERP, сохраненные в индексе 406D элементов фавикона и пятый субмассив, хранящий элементы SERP, сохраненные в индексе элементов изображений (не показан).
[00095] Со ссылкой на Фиг. 6, предоставляет неограничивающий пример индекса 406А элементов заголовка, заполненный с помощью множества сохраненных элементов 604 заголовка, которые включают в себя заголовки 2 верхних поисковых результата на SERP 106 и 206 (т.е. первые поисковые результаты 108, 208 и вторые поисковые результаты 210).
[00096] Аналогично одному или нескольких сохраненным поисковым запросам 510, множество сохраненных элементов 604 заголовка также хранятся в алфавитном порядке без дубликатов записей в индексе 406А элементов заголовка. Излишне говорить, что другие элементы SERP могут сохраняться другим способом. Например, подразумевается, что элементы фавикона сохранены на основе соответствующего названия веб-ресурса. Таким образом, каждый из множества сохраненных элементов 604 заголовка обладает уникальным значением 614 позиции элемента в индексе оффлайн 406А элементов заголовка. Например, заголовки 116, 216 обладают первой позицией 612 элемента, указывающей на то, что заголовки 116 и 216 сохранены как единая запись в 77ой записи индекса 406А элементов заголовка (поскольку они обладают одинаковым написанием). Аналогично, заголовок 608 (который соответствует заголовку второго поискового результата 110, см. Фиг. 1) обладает второй позицией 610 элемента, указывающей на то, что заголовок 608 сохранен как 76-ая запись в индексе 406А элементов заголовка. Подразумевается, что множество сохраненных элементов 604 заголовка может быть сохранено в индексе 406А элементов заголовка в любом другом виде.
[00097] Следует отметить, что индекс 406А элементов заголовка является только одним примером индексов элементов, которые могут быть созданы как часть реализации неограничивающих вариантов осуществления настоящей технологии. Важно иметь в виду, что для создания оффлайн SERP во время фазы эксплуатации (как описано далее более подробно), парсированные элементы SERP сохранены в индексе элементов, связанном с типом элементов SERP. Другими словами, в соответствии с вариантами осуществления настоящей технологии, хранилища элементов SERP (т.е. вышеупомянутый индекс 406А элементов заголовка, индекс 406В элементов URL, индекс 406С элементов сниппета, индекс 406D элементов фавикона и индекс элементов изображения (не показано), а также другие хранилища элементов, которые потенциально используются) выполнены с возможностью сохранять элементы SERP определенного типа. В некоторых вариантах осуществления настоящей технологии, заранее определенный тип уникален среди хранилищ элементов SERP (т.е. вышеупомянутый индекс 406А элементов заголовка, индекс 406В элементов URL, индекс 406С элементов сниппета, индекс 406D элементов фавикона и индекс элементов изображения (не показано), а также другие хранилища элементов, которые потенциально используются).
[00098] Например, элементы URL парсируются и сохраняются в индексе 406В элементов URL, элементы сниппетов парсируются и сохраняются в индексе 406С элементов сниппеты, элементы фавикона парсируются и сохраняются в индексе 406D элементов фавикона и так далее.
[00099] Снова обратимся к Фиг. 4 Как часть сохранения одного или нескольких сохраненных поисковых запросов 510 и элементов SERP, содержащихся в их соответствующих поисковых результатах, приложение 326 для создания базы данных далее выполнено с возможностью связывать элементы SERP с соответствующим сохраненным поисковым запросов (из одного или нескольких сохраненных поисковых запросов 510) путем заполнения и поддержки работы индекса 408 шаблонов оффлайн SERP.
[000100] На Фиг. 7 представлен неограничивающий пример индекса 408 оффлайн шаблонов, который был заполнен с помощью множества указателей 702 на элементы, каждый из которых направлен на конкретный элемент SERP, сохраненный в индексах 406 элементов SERP. В контексте настоящей технологии, термин "указатель" относится к цифровому адресу конкретной записи в оффлайн базе 328 данных результатов запроса. В контексте настоящей технологии, термин "шаблон SERP" относится к структурированному списку указателей 702 на элементы, которые связаны с конкретной SERP.
[000101] Индекс 408 шаблонов оффлайн SERP включает в себя первый список 712, который содержит подмножество из множеств указателей 702 на элементы, связанных с элементами SERP, парсированных из первого и второго поисковых результатов 208, 210 на второй SERP 206. Индекс 408 шаблонов оффлайн SERP далее включает в себя второй список 714, который содержит другое подмножество из множеств указателей 702 на элементы, связанных с элементами SERP, парсированными из первого и второго поисковых результатов 108, 110 на SERP 106.
[000102] Первый список 712 включает в себя первый подсписок 708 и второй подсписок 710. Первый подсписок 708 включает в себя подмножество из множества указателей 702 на элементы, связанные с первым поисковым результатом 208. Второй подсписок 710 включает в себя другое подмножество из множества указателей 702 на элементы, связанные со вторым поисковым результатом 210. Обращаясь к первому подсписку 708, первый подсписок 708 включает в себя первый указатель 708А на элемент, связанный с заголовком 216, второй указатель 708В на элемент, связанный с URL 218, третий указатель 708С на элемент, связанный со сниппетом 220, и четвертый указатель 708D на элемент, связанный с фавиконом 222.
[000103] Каждый из множества указателей 702 на элементы обладает уникальным значением 716 позиции указателя на элемент в индексе оффлайн 408 шаблонов SERP. Например, первый указатель 708А на элементы обладает первым значением 716А позиции указателя на элемент, указывающим на то, что первый указатель 708А элемента хранится как 264-ая запись в индексе оффлайн 408 шаблонов SERP.
[000104] В некоторых вариантах осуществления настоящей технологии, первое значение 716А позиции указателя на элемент определено на основе значения 516 позиции запроса (см. Фиг. 5) соответствующего сохраненного поискового запроса. Точнее, в случае когда приложение 326 для создания базы данных выполнено с возможностью парсить и сохранять четыре элемента SERP для каждого из двух верхних поисковых результатов для каждого из одного или нескольких сохраненных поисковых запросов 510 (что означает, что постоянно будет храниться восемь SERP для каждого из одного или нескольких сохраненных поисковых запросов), первое значение 716А позиции указателя будет соответствовать восьмикратному значению значению 516 позиции запроса соответствующего сохраненного поискового запроса. Например, с учетом того, что второй поисковый запрос 504 (который связан с первым списком 714) сохранен как 33-я запись индекса 402 оффлайн запросов, первый указатель 708А на элемент, следовательно, сохранен как 264-ая запись в индексе 408 шаблонов SERP.
[000105] Каждый из множества указателей 702 на элементы является абсолютной ссылкой на данный элемент SERP, сохраненный в индексах 406 элементов SERP. Таким образом, каждый из множества указателей 702 на элементы включает в себя две ссылки на указатели: (i) первую ссылку на указатель, указывающую на данный индекс элементов SERP из индексов 406 элементов SERP, например, на вышеупомянутый индекс 406А элементов заголовка; и (ii) вторую ссылку на указатель, указывающую на значение 614 позиции элемента, связанное с данным элементом SERP.
[000106] Например, с учетом того, что первый указатель 708А на элемент (Заголовок_77) является указателем на элемент, связанным с заголовком 216, первая ссылка на указатель соответствует индексу 406А элементов заголовка. Вторая ссылка на указатель соответствует первому значению 612 позиции элемента SERP, связанному с заголовком 216 (т.е. "77").
[000107] Как было кратко упомянуто ранее, в некоторых вариантах осуществления настоящей технологии, число элементов SERP, которые парсированы и сохранены (в индексах 406 элементов SERP) для каждого из одного или нескольких сохраненных поисковых запросов 510, определено заранее. Например, как показано на Фиг. 7, каждый список (например, первый список 712 и второй список 714), хранящийся в индексе оффлайн 408 шаблонов SERP, включает в себя восемь указателей на элементы. Другими словами, при создании оффлайн SERP в фазе эксплуатации (как будет более подробно описано далее), длина конкретного списка, сохраненного в индексе оффлайн 408 шаблонов SERP определяется на основе уникального значения 716 позиции указателя на элемент для первого указателя на элемент из конкретного списка. Если взять в качестве примера первый список 712, длина первого списка 712 определяется как включающая в себя восемь указателей на элементы, начиная с первого указателя 708А на элементы (включительно).
[000108] Следует иметь в виду, что, в отличии от предсталвенного варианта осуществления технологии, в зависимости от конкретного критерия, реализованного оператором (не показано) сервера 314, число элементов SERP, парсированных приложением 326 для создания базы данных, может быть неодинаковым для каждого из одного или нескольких сохраненных поисковых запросов 510. Способ, в соответствии с которым определяется длина конкретного списка при построении SERP во время эксплуатации, описан далее более подробно.
[000109] Снова обратимся к Фиг. 5. Чтобы связать данный список с одним из одного или нескольких сохраненных поисковых запросов 510, каждый из одного или нескольких сохраненных поисковых запросов 510 связан с соответствующим указателем 508 на шаблон оффлайн SERP. Например, первый поисковый запрос 502 связан с первым указателем 508А на шаблон оффлайн SERP, а второй поисковый запрос 504 связан со вторым указателем 508В на шаблон оффлайн SERP Как показано, каждый из указателей 508 на шаблон оффлайн SERP направлен на конкретное значение 716 позиции указателя на элемент, связанное с индексом 408 шаблонов оффлайн SERP (см. Фиг. 7). Например, второй указатель 508В на шаблон оффлайн SERP является ссылкой на первое значение 716А позиции указателя на элемент (которое составляет "264"), а первый указатель 508А на шаблон оффлайн SERP является ссылкой на второе значение 716В позиции указателя на элемент (которое составляет "528")
[000110] В некоторых вариантах осуществления настоящей технологии, до сохранения нового поискового запроса в индексе 402 оффлайн запросов, приложение 326 для создания базы данных выполнено с возможностью определять, был ли новый поисковый запрос ранее сохранен в индексе 402 оффлайн запросов. Если новый поисковый запрос был ранее сохранен в индексе 402 оффлайн запросов, приложение 326 для создания базы данных не сохраняет новый поисковый запрос в индексе 402 оффлайн запросов. Это позволяет заполнить индекс 402 оффлайн запросов без дубликатов поисковых запросов.
[000111] Как было упомянуто ранее, после того как новый поисковый запрос удовлетворяет по меньшей мере одному условию, новый поисковый запрос сохраняется в оффлайн базе 328 данных результатов поиска. Другими словами, даже если новый поисковый запрос не написан правильно, приложение 326 для создания базы данных выполнено с возможностью сохранять новый поисковый запрос в индекс 402 оффлайн запросов. Тем не менее, приложение 326 для создания базы данных также выполнено с возможностью определять, является ли фактически правильно написанный поисковый запрос одним из одного или нескольких сохраненных поисковых запросов 510. Если определено, что новый поисковый запрос является неправильно написанной формой одного из одного или нескольких сохраненных поисковых запросов 510, приложение 326 для создания базы данных выполнено с возможностью сохранять неправильно написанный новый поисковый запрос в индексе 402 оффлайн запросов (как удовлетворяющий по меньшей мере одному первому условию), но не парсить и сохранять элементы SERP, связанные с неправильно написанным поисковым запросом.
[000112] Например, предполагается, что неправильно написанный поисковый запрос выглядит как "havs" вместо "habs" (что является вторым поисковым запросом 504, сохраненным в индексе 402 оффлайн запросов). При определении того, что исправленная форма неправильно написанного нового поискового запроса соответствует ранее сохраненному второму поисковому запросу 504 (и что неправильно написанный новый поисковый запрос удовлетворяет по меньшей мере одному первому условию), приложение 326 для создания базы данных выполнено с возможностью сохранять неправильно написанный новый поисковый запрос в индексе 402 оффлайн запросов, и настраивает указатель на шаблон оффлайн SERP, связанный с неправильно написанным новым поисковым запросом, как ссылку (i) на первый указатель 708А на элемент оффлайн SERP (который связан со вторым поисковым запросом 504 ("habs")) в индексе 408 шаблонов оффлайн SERP (см. Фиг 7) или (ii) на второй поисковый запрос 504 ("habs") в индексе 402 оффлайн запросов. В следующей таблице 1 показан пример индекса 402 оффлайн запросов с неправильно написанным новым поисковым запросом, который хранится в нем:
Figure 00000001
Figure 00000002
[000113] В дополнительном варианте осуществления настоящей технологии, как часть этапа сохранения нового поискового запроса в индексе 402 оффлайн запросов, приложение 326 для создания базы данных выполнено с возможностью определять, обладает ли новый поисковый запрос синонимичным поисковым запросом, который был ранее сохранен в индексе 402 оффлайн запросов. В контексте настоящей технологии, термин "синонимичный поисковый запрос" относится к ранее сохраненному поисковому запросу, который обладает контекстуальным параметром сходства SERP выше заранее определенного порога в отношении нового поискового запроса. Другими словами, приложение 326 для создания базы данных выполнено с возможностью анализировать контекстуальное сходство между элементами SERP, формирующими первые топ N поисковых результатов нового поискового запроса и сохраненного поискового запроса. Если было определено, что синонимичный поисковый запрос был ранее сохранен в индексе 402 оффлайн запросов, приложение 326 для создания базы данных выполнено с возможностью сохранять элементы SERP, связанные с новым поисковым запросом.
[000114] Например, предположим, что новый поисковый запрос является первым поисковым запросом 502 (еще не сохранен), и приложение 326 для создания базы данных определило, что второй поисковый запрос 504 (уже сохраненный) является синонимическим поисковым запросом для первого поискового запроса 502. В таком случае, приложение 326 для создания базы данных может сохранять новый поисковый запрос в индексе 402 оффлайн запросов, но вместо парсинга и сохранения элементов SERP, связанных с новым поисковым запросом (как сделано на Фиг. 6 и 7), приложение 326 для создания базы данных настраивает первый указатель 508А на шаблон оффлайн SERP как ссылку (i) на первый указатель 708А на элемент оффлайн SERP (который связан со вторым поисковым запросом 504) в индексе 408 шаблонов оффлайн SERP (см. Фиг 7) или (ii) на второй поисковый запрос 504 в индексе 402 оффлайн запросов. В следующей таблице 2 показан пример индекса 402 оффлайн запросов с новым поисковым запросом ("Montreal Canadiens") и синонимичным поисковым запросом ("habs"), которые хранятся в нем.
Figure 00000003
Figure 00000004
[000115] Излишне упоминать, что подразумевается, что неправильно написанный новый поисковый запрос, после сохранения, может быть направлен на соответствующий исправленный поисковый запрос, который, в свою очередь, направлен на соответствующий синонимический поисковый запрос.
[000116] Конкретный технический эффект от этих вариантов осуществления настоящей технологии включает в себя возможность, в некотором смысле, "дедуплицировать" оффлайн SERP, что приводит к уменьшению требований к памяти для хранения индекса 408 шаблонов оффлайн SERP на электронном устройстве 302 (описано далее), и одновременно способствует расширению покрытия потенциальных поисковых запросов, которые будут получены пользователем электронного устройства 302. Другими словами, дедупликация неправильно написанных запросов и синонимов позволяет сортировать один шаблон SERP, который используется для ряда неправильно написанных поисковых запросов и запросов, обладающих синонимическим поисковым запросом, который был сохранен ранее.
[000117] Возвращаясь к Фиг. 4, в некоторых вариантах осуществления настоящей технологии, приложение 326 для создания базы данных выполнено с возможностью поддерживать и заполнять индекс частичных 410 оффлайн запроса.
[000118] Со ссылкой на Фиг. 8 предлагается неограничивающий пример индекса 410 частичных оффлайн запроса, заполненного с помощью одного или нескольких уникальных наборов символов 802 и соответствующего указателя 804 на кластер запросов.
[000119] В некоторых вариантах осуществления настоящей технологии, один или несколько уникальных наборов символов 802 созданы на основе первых двух байт из одного или нескольких сохраненных поисковых запросов 510. Например, предлагается первый набор символов 802А, представляющий собой "ha". Первый указатель 804А на кластер поисковых запросов, связанный с первым набором символом 802А, предоставляет индикацию второго оффлайн кластера 506В поисковых запросов. Подразумевается, что один или несколько уникальных наборов символов 802 может быть создано на основе большего или меньшего числа байт чем первые два символа из одного или нескольких сохраненных поисковых запросов 510.
[000120] Подразумевается, что сервер 314 выполнен с возможностью периодически обновлять оффлайн базу 328 данных результатов запросов, например, один раз в неделю, чтобы добавлять (или удалять) новые поисковые запросы и их соответствующие SERP.
[000121] Сохранение оффлайн базы данных результатов запросов на клиентском устройстве
[000122] Возвращаясь к Фиг. 3, в некоторых вариантах осуществления настоящей технологии, электронное устройство 302 выполнено с возможностью получать, с помощью интерфейса передачи данных (не показано), пакет 334 данных от сервера 314. Пакет 334 данных включает в себя оффлайн базу 328 данных результатов запросов и приложение 332 создания оффлайн SERP. Оффлайн база 328 данных результатов запросов и приложение 332 создания оффлайн SERP сохранены в постоянном хранилище 306 и доступны поисковому приложению 308.
[000123] То, как именно пакет 334 данных передается, никак конкретно не ограничено. Тем не менее, благодаря числу данных, хранящихся в оффлайн базе 328 данных результатов запросов, подразумевается, что пакет 334 данных передается при определении того, что электронное устройство 302 соединено с сетью 312 передачи данных через конкретную линию 310 передачи данных, например, WiFi™.
[000124] Далее подразумевается, что оффлайн база 328 данных результатов запросов может периодически обновляться, например, один раз в неделю.
[000125] Обработка поискового запроса на пользовательском устройстве
[000126] На Фиг. 9-13 описан способ создания оффлайн SERP с помощью приложения 332 создания оффлайн SERP. В контексте настоящей технологии, термин "оффлайн SERP" относится к SERP, созданной на электронном устройстве 302 без получения каких-либо данных с сервера 314.
[000127] Начиная с общего вида, при запуске, поисковое приложение 308 выполнено с возможностью выполнять предварительную оценку связи между электронным устройством 302 и сервером 314. При определении того, что связь между электронным устройством 302 и сервером 314 отсутствует или обладает очень медленной скоростью, инициируется приложение 332 по созданию оффлайн SERP.
[000128] Со ссылкой на Фиг. 9, то, как именно производится предварительная оценка связи, никак не ограничено. Предположим, что пользователь, связанный с электронным устройством 302 желает осуществить новый поисковый запрос 902 ("habs"), который он раньше не вводил.
[000129] В общем случае, поисковое приложение 308 выполнено с возможностью, когда пользователь вводит буквы нового поискового запроса 902, предоставлять предложения по завершению запроса в выпадающем меню (не показано). То, как именно предложения по завершению запроса предоставляются пользователю, который вводит поисковый запрос, хорошо известно в данной области техники и не будет описано далее. Тем не менее, достаточно сказать, что предложения по завершению запроса в общем случае предоставляются путем передачи, от электронного устройства 302, индикации на частично введенный запрос серверу 314 и получения в ответ одного или нескольких предложений по завершению запроса, определенных сервером 314.
[000130] Далее, в целях иллюстрации, пользователь ввел частично введенный запрос 912, но ни одно предложение по завершению запроса не было получено электронным устройством 302, что может быть индикацией того, что связь между электронным устройством 302 и сервером 314 медленная или отсутствует. В результате, инициируется приложение 332 по созданию оффлайн SERP.
[000131] Подразумевается, что предварительная оценка связи может осуществляться каким-либо другим способом. Например, когда пользователь, связанный с электронным устройством 302, запускает поиск (путем нажатия "клавиши ввод", например), электронное устройство 302 выполнено с возможностью определять, удовлетворяется ли по меньшей мере одно второе условие. По меньшей мере одно второе условие удовлетворяется в случае когда (i) пропускная способность канала между электронным устройством 302 и сервером 314 находится ниже первого порога и/или задержка между электронным устройством 302 и сервером 314 находится выше второго порога. При определении того, что по меньшей мере одно второе условие удовлетворяется, инициируется приложение 332 по созданию оффлайн SERP.
[000132] Также подразумевается, что поисковое приложение 308 может предоставлять активатор 910, который, при активации пользователей, выполнен с возможностью инициировать приложение 332 по созданию оффлайн SERP, тем самым создавая оффлайн SERP в ответ на новый поисковый запрос 902. Это особенно удобно в случае, когда пользователь желает не превышать плановый лимит объема передачи данных на мобильном телефоне.
[000133] В некоторых вариантах осуществления настоящей технологии, также подразумевается, что приложение 332 по созданию оффлайн SERP инициируется как результат поискового приложения 308, которое было запущено пользователем. Таким образом, приложение 332 по созданию оффлайн SERP выполнено с возможностью отображать в выпадающем меню (не показано) одно или несколько вариантов поиска. Конкретнее, в ответ на частично введенный запрос 912, который был введен в интерфейс 102 запроса, приложение 332 по созданию оффлайн SERP выполнено с возможностью получить доступ к одному из оффлайн кластеров 506 поисковых запросов, который соответствует первым двум байтам частично введенного запроса 912, и выбрать заранее определенное число сохраненных поисковых запросов, начинающихся с тех же самых двух первых байт на основе их соответствующих общих весовых коэффициентов интереса. В конкретном неограничивающем варианте осуществления настоящей технологии, приложение 332 по созданию оффлайн SERP выполнено с возможностью получать доступ к одному из оффлайн кластеров 506 поисковых запросов, который соответствует первым двум байтам частично введенного запроса 912 и выбирает три сохраненных поисковых запроса, начинающихся с тех же первых двух байт, обладающих наивысшим весовым коэффициента интереса среди сохраненных поисковых запросов из этого кластера.
[000134] Теперь предположим, что по любой из вышеупомянутых причин, инициируется приложение 332 по созданию оффлайн SERP. Приложение 332 по созданию оффлайн SERP включает в себя исполняемые на компьютере программные инструкции, выполняемые процессором 304 для создания оффлайн SERP.
[000135] В некоторых вариантах осуществления настоящей технологии, как результат инициирования, приложение 332 по созданию оффлайн SERP выполнено с возможностью загружать оффлайн базу 328 данных результатов запросов в энергозависимую память 307. Несмотря на то, что энергозависимая память 307 считается одним из наиболее быстрых хранилищ, доступных процессору 304, благодаря объему данных, содержащихся в оффлайн базе 328 данных результатов запросов, возможно, что загрузка базы 328 данных результатов запросов в энергозависимую память 307 может вызвать перебои в работе электронного устройства 302. Таким образом, подразумевается, что оффлайн база 328 данных результатов запросов может быть частично загружена на энергозависимую память 307 (или другое хранилище на электронном устройстве 302) и доступна другими способами например, с помощью отображения в ОЗУ, процессору 304.
[000136] Далее обратимся к Фиг. 10, на которой показан неограничивающий вариант осуществления определения того, соответствует ли новый поисковый запрос 902 одному из одного или нескольких сохраненных поисковых запросов 510.
[000137] Сначала приложение 332 по созданию оффлайн SERP выполнено с возможностью парсить первые 2 байта, кодируя новый поисковый запрос 902 (который соответствует первым двум буквам слова на английском языке и первой букве слова на русском языке) в частичный поисковый запрос 1002. Частичный поисковый запрос 1002 сравнивается с одним или несколькими уникальными наборами символами 802 для определения того, хранится ли частичный поисковый запрос 1002 в индексе 410 частичных оффлайн запросов. То, как именно производится сравнение, никак не ограничено и может быть осуществлено с помощью любых известных способов, например, с помощью последовательного сравнения каждого символа, бинарного поискового сравнения и так далее.
[000138] Подразумевается, что до процедуры парсинга, приложение 332 по созданию оффлайн SERP выполнено с возможностью нормализовать новый поисковый запрос 902, например, путем удаления пробелов или артиклей (например, "the", "а" и т.д.).
[000139] Определено, что частичный поисковый запрос 1002 соответствует первому набору символов 802А. Таким образом, приложение 332 по созданию оффлайн SERP выполнено с возможностью извлекать первый указатель 804А на кластер поисковых запросов, связанный с первым набором символов 802А. С учетом того, что первый указатель 804А на кластер поисковых запросов предоставляет индикацию на второй оффлайн кластер 506В поисковых запросов, приложение 332 по созданию оффлайн SERP последовательно получает доступ к кластеру 506В поисковых запросов из индекса 402 оффлайн запросов.
[000140] После того как приложение 332 по созданию оффлайн SERP получило доступ к кластеру 506В поисковых запросов, новый поисковый запрос 902 далее сравнивается с одним или несколькими сохраненными поисковыми запросами, которые хранятся во втором оффлайн кластере 506В поисковых запросов. То, как именно производится сравнение, никак не ограничено и может быть осуществлено с помощью известных способов, например, путем посимвольного сравнения, бинарного поискового сравнения и так далее.
[000141] В некоторых вариантах осуществления настоящей технологии, приложение 332 по созданию оффлайн SERP выполнено с возможностью получать доступ к индексу 402 оффлайн запросов для определения того, соответствует ли новый поисковый запрос 902 одному из одного или нескольких сохраненных поисковых запросов 510 без изначального доступа к индексу 410 частичных оффлайн поисковых запросов.
[000142] На чертеже определено, что новый поисковый запрос 902 соответствует одному из одного или нескольких сохраненных поисковых запросов 510, а именно - второму поисковому запросу 504.
[000143] Далее, до описания дальнейших процедур, в зависимости от варианта осуществления настоящей технологии, индекс 408 шаблонов оффлайн SERP (см. Фиг 7) может (i) сохранять различное число указаний на элементы для каждого из одного или нескольких поисковых запросов 510 или (ii) сохранять постоянное число указателей на элементы для каждого из одного или нескольких сохраненных поисковых запросов 510 (например, восемь указателей на элементы для каждого сохраненного списка). Далее будет описано то, как длина первого списка 712 в индексе 408 шаблонов оффлайн SERP определяется электронным устройством 302 в зависимости от двух описанных ситуаций.
[000144] В первой ситуации, до получения доступа к индексу 408 шаблонов оффлайн SERP, приложение по созданию оффлайн SERP выполнено с возможностью извлекать два указателя из индекса 402 оффлайн запросов: (i) на второй указатель 508В на шаблон оффлайн SERP, который связан со вторым поисковым запросом 504; и (ii) на третий указатель 508С на шаблон оффлайн SERP, который связан с третьим поисковым запросом (не показано), который является следующей записью после второго поискового запроса 504.
[000145] Далее будет сделана ссылка на Фиг. 11. С учетом того, что второй указатель 508В на шаблон оффлайн SERP является ссылкой на первый указатель 708А на элемента, приложение 332 по созданию оффлайн SERP получает доступ к первому указателю 708А на элемент из индекса 408 шаблонов оффлайн SERP. Конкретнее, приложение 332 по созданию оффлайн SERP выполнено с возможностью получать доступ к первому указателю 708А на элемент и добавлять к нему тег "начало" первого списка 712. Приложение 332 по созданию оффлайн SERP выполнено с возможностью получать доступ к указателю на элемент (не показано), связанный с третьим указателем 508С на шаблон оффлайн SERP, и добавлять к нему тег "начало" последующего списка (не пронумеровано).
[000146] Таким образом, путем использования второго указателя 508В на шаблон оффлайн SERP и третьего указателя 508С на шаблон оффлайн SERP, приложение 332 по созданию оффлайн SERP выполнено с возможностью определять длину первого списка 712. Таким образом, приложение 332 по созданию оффлайн SERP выполнено с возможностью извлекать, в свою очередь, каждый из элементов SERP, которые содержатся в первом списке 712.
[000147] Возвращаясь ко второй ситуации, до получения доступа к индексу 408 шаблонов оффлайн SERP, приложение по созданию оффлайн выполнено с возможностью извлекать, из индекса 402 оффлайн запросов, только второй указатель 508В на шаблон оффлайн SERP, связанный со вторым поисковым запросом 504. После получения доступа к первому указателю 708А на элемент, приложение 332 по созданию оффлайн SERP выполнено с возможностью определять, что восемь указателей на элементы, которые следуют после первого указателя 708А на элементы (включительно) составляют длину первого списка 712. Таким образом, приложение 332 по созданию оффлайн SERP выполнено с возможностью извлекать, в свою очередь, каждый из элементов SERP, которые содержатся в первом списке 712.
[000148] Предполагая, что вместо правильного написания нового поискового запроса 902, новый поисковый запрос 902 содержит грамматическую ошибку (например, "havs" вместо "habs"). Как было описано ранее, если неправильно написанный поисковый запрос был ранее сохранен приложением 326 для создания базы данных в индексе 402 оффлайн запросов, указатель на шаблон оффлайн SERP, связанный с сохраненным неправильно написанным поисковым запросов может быть либо (i) копией второго указателя 608В на шаблон оффлайн SERP (что позволяет приложению 326 для создания оффлайн SERP получать доступ к первому указателю 708А на элемент) или (ii) ссылкой на второй поисковый запрос 504 ("habs") индексе 402 оффлайн запросов.
[000149] Далее, при определении того, что новый поисковый запрос 902 правильно написан, или при извлечении указателя, связанного с соответствующим правильно написанным поисковым запросом, в зависимости от реализации конкретной технологии, может быть вероятно, что приложение 326 для создания базы данных хранит первый поисковый запрос 502 как синонимический поисковый запрос для второго поискового запроса 504 (с которым совпадает новый поисковый запрос 902). Как было описано выше, второй указатель 508В на шаблон оффлайн SERP может представлять собой либо (i) копию первого указателя 508А на шаблон оффлайн SERP (что позволяет работать приложению 332 по созданию оффлайн SERP) или (ii) ссылку на первый поисковый запрос 502 в индексе 402 оффлайн запроса.
[000150] На Фиг. 12 представлен неограничивающий вариант извлечения заголовка 216 с помощью первого указателя 708А на элемент. Как было упомянуто ранее, первый указатель 708А на элемент ("Заголовок_77") включает в себя ссылку на первый указатель, что позволяет приложению 326 для создания базы данных получить доступ к индексу 406А элементов заголовка, и ссылку на второй указатель, что позволяет приложению 326 для создания базы данных получить доступ и извлечь заголовок 216 на основе первого значения 612 позиции элемента SERP. Другими словами, первый указатель 708А на элемент является абсолютной ссылкой на запись заголовка 216.
[000151] На Фиг. 10 процесс извлечения элементов SERP выполняется до достижения конца первого списка 712, как было определено выше.
[000152] В некоторых вариантах осуществления настоящей технологии, после извлечения элемента SERP, связанного с четвертым указателем 708D на элемент и во время процесса обработки последующего пятого указателя на элемент (не пронумеровано), приложение 332 для создания оффлайн SERP выполнено с возможностью определять, что указатели 708A-708D на элементы вместе формируют первый результат 208 запроса. Это определение происходит из-за того факта, что пятый указатель (не пронумерован) на элемент ведет на индекс 406А элементов заголовка, который был ранее доступен первому указателю 708А на элемент.
[000153] После того, как все элементы SERP, связанные с указателями на элементы из первого списка 712 были извлечены, приложение 332 для создания оффлайн SERP выполнено с возможностью компилировать извлеченные элементы SERP в порядке извлечения.
[000154] На Фиг. 13 представлен неограничивающий пример оффлайн SERP 1302, которая была создана в ответ на новый поисковый запрос 902. Оффлайн SERP 1302 отображает первый поисковый результат 208 и второй поисковый результат 210. Каждый из первого и второго результатов 208, 210 является результатом компиляции элементов SERP, хранящихся в индексах 406 элементов SERP, которые были извлечены с помощью указателей на элементы, которые находятся в первом списке 712.
[000155] В некоторых вариантах осуществления настоящей технологии, поисковое приложение 308 выполнено с возможностью параллельно создавать оффлайн SERP 1302, выполнено с возможностью скачивать дополнительные поисковые результаты (например, третий поисковый результат 212) с сервера 314. В некоторых вариантах осуществления настоящей технологии, если соединение было восстановлено (или улучшено), и дополнительные поисковые результаты были получены сервером 314, поисковое приложение выполнено с возможностью добавлять или запрашивать пользователя обновить оффлайн SERP 1302 для отображения дополнительных полученных поисковых результатов.
[000156] С учетом представленных выше архитектуры и примеров, возможно выполнить исполняемый на компьютере способ создания оффлайн SERP. На Фиг. 14 представлена блок-схема способа 1400, реализованного в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем. Процесс 1400 может выполняться электронным устройством 302.
[000157] Этап 1402 - получение поискового запроса от пользователя, связанного с клиентским устройством.
[000158] Способ 1400 начинается на этапе 1402, где поисковое приложение 308 электронного устройства 302 получает новый поисковый запрос 902.
[000159] Способ 1400 будет описан ниже со ссылкой на один сценарий. Важно иметь в виду, что сценарий, который представлен ниже, служит только для целей иллюстрации, и настоящая технология никаким образом не ограничивается представленным ниже сценарием.
[000160] Поисковое приложение 308 получает новый поисковый запрос 902 от пользователя, связанного с электронным устройством 302. Предполагается, что новый поисковый запрос 902 является запросом "habs".
[000161] Этап 1404 - определение того, хранится ли поисковый запрос в индексе оффлайн запросов путем сравнения поискового запроса с одним или несколькими сохраненными оффлайн поисковыми запросами.
[000162] На этапе 1404, приложение 332 по созданию оффлайн SERP выполнено с возможностью определять, соответствует ли новый поисковый запрос 902 одному из одного или нескольких сохраненных поисковых запросов 510 в индексе 402 поисковых запросов.
[000163] Приложение 332 по созданию оффлайн SERP выполнено с возможностью определять, соответствует ли новый поисковый запрос 902 одному из одного или нескольких сохраненных поисковых запросов 510 в индексе 402 поисковых запросов.
[000164] Этап 1406 - в ответ на определение того, что поисковый запрос совпадает с данным оффлайн поисковым запросом, определение указателя на шаблон оффлайн SERP, связанного с данным оффлайн поисковым запросом.
[000165] На этапе 1406, при определении того, что новый поисковый запрос 902 совпадает с одним из одного или нескольких поисковых запросов в индексе 402 оффлайн запросов, приложение 332 по созданию оффлайн SERP выполнено с возможностью определять указатель 508 на шаблон оффлайн SERP, связанный с данным оффлайн поисковым запросом.
[000166] При определении того, что новый поисковый запрос 902 соответствует второму поисковому запросу 504, сохраненному в индексе 402 оффлайн запросов, приложение 332 по созданию оффлайн SERP определяет, что соответствующий указатель на шаблон оффлайн SERP является вторым указателем 508В на шаблон оффлайн SERP.
[000167] Этап 1408 - определение, на основе указателя на шаблон оффлайн SERP, соответствующего шаблона оффлайн SERP, сохраненного в индексе шаблонов оффлайн SERP.
[000168] На этапе 1408, приложение 332 по созданию оффлайн SERP выполнено с возможностью определить шаблон оффлайн SERP, который связан с ранее определенным указателем на шаблон оффлайн SERP.
[000169] На основе по меньшей мере второго указателя на шаблон оффлайн SERP 508В, приложение 332 по созданию оффлайн SERP выполнено с возможностью определять длину шаблона оффлайн SERP, связанную с новым поисковым запросом, что соответствует первому списку 712 индекса 408 шаблонов оффлайн SERP.
[000170] Этап 1410 - получение доступа к списку, связанному с соответствующим шаблоном оффлайн SERP.
[000171] На этапе 1410, приложение 332 по созданию оффлайн SERP выполнено с возможностью извлекать список, содержащий подмножество из одного или нескольких указателей 702 на элементы, которые формируют соответствующий шаблон оффлайн SERP.
[000172] После определения длины первого списка 712 в индексе 408 шаблонов оффлайн SERP, приложение 332 по созданию оффлайн SERP выполнено с возможностью получать доступ к первому списку 712.
[000173] Этап 1412 - извлечение, для каждого из одного или нескольких указателей на элементы из списка, соответствующего элемента SERP по меньшей мере из одного индекса элементов SERP.
[000174] На этапе 1412, приложение 332 по созданию оффлайн SERP выполнено с возможностью, на основе одного или нескольких указателей 702 на элементы, которые находятся в списке, получать доступ и извлекать соответствующие элементы SERP из индексов 406 элементов SERP.
[000175] На основе ссылок на указатели, находящихся в первом указателе 708А на элементе первого списка 712, приложение 332 по созданию оффлайн SERP выполнено с возможностью получать доступ к индексу 406А элементов заголовка и извлекать первый заголовок 216. После того как первый заголовок 216 был получен, приложение 332 по созданию оффлайн SERP выполнено с возможностью извлекать следующий элемент SERP, связанный со вторым указателем 708В на элемент, пока не будут извлечены все элементы SERP, связанные с первым списком 712.
[000176] Этап 1414 - создание оффлайн SERP путем компиляции извлеченных элементов SERP.
[000177] На этапе 1414, приложение 332 по созданию оффлайн SERP выполнено с возможностью компилировать извлеченные элементы SERP.
[000178] При извлечении каждого из элементов SERP из индексов 406 элементов SERP на основе указателей на элементы, находящихся в первом списке 712, приложение 332 по созданию оффлайн SERP выполнено с возможностью компилировать таким образом извлеченные элементы SERP для создания оффлайн SERP 1302.
[000179] Этап 1416 - отображение оффлайн SERP на электронном устройстве.
[000180] На этапе 1416, приложение 332 по созданию оффлайн SERP выполнено с возможностью инициировать поисковое приложение 308 отображать оффлайн SERP 1302.
[000181] Оффлайн SERP 1302 отображается на электронном устройстве 302 с помощью поискового приложения 308.
[000182] Следует иметь в виду, что, в отличие от обычного способа создания SERP, который включает в себя извлечение поискового результата и определение позиции отображения (путем использования, например, приложения 320 для ранжирования), настоящая технология направлена на создание оффлайн SERP путем получения конкретного поискового результата для данной позиции (путем использования указателей 702 на элементы).
[000183] Одной из основных целей настоящей технологии является достижение достаточного охвата большинства потенциальных поисковых запросов, которые пользователь может вводить в интерфейс 102 запроса. Конкретнее, с помощью удаления дубликатов элементов SERP путем сохранения только одного элемента SERP в одном или нескольких индексах 406 элементов SERP, которые могут быть извлечены с помощью одного или нескольких шаблонов SERP, большее число оффлайн поисковых запросов (и соответствующих SERP) может быть сохранено на электронном устройстве 302 с применением оффлайн базы 328 данных результатов запросов.
[000184] Другой целью настоящей технологии является эффективное создание оффлайн SERP со сниженными требованиями к вычислительной мощности электронного устройства 302. Путем сохранения элементов SERP в различных индексах (например, индексе 406А элементов заголовка) и извлечения их с помощью указателей, настоящая технология не только способствует лучшему покрытию, но также способствует эффективному использованию вычислительных мощностей при создании оффлайн SERP.
[000185] Еще одной целью технологии является снижение сетевого трафика путем того, что пользователь может найти информацию без запроса на доступ к серверу 314. Например, в случае, когда пользователь находится на пути к известному ресторану, но забыл конкретный адрес, пользователь может активировать активатор 910 и вводить название ресторана в интерфейс 102 запросов и производить поиск. В результате, подразумевается, что в созданной оффлайн SERP может отображаться информация, которая релевантна для пользователя (поскольку сниппеты или карточки объекты, которые отображаются на оффлайн SERP, вероятно будут содержать адрес или контактную информацию о заведении).
[000186] Модификации и улучшения вышеописанных вариантов осуществления настоящей технологии будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не устанавливает никаких ограничений. Таким образом, объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.
[000187] Варианты осуществления настоящей технологии могут быть кратко изложены в пронумерованных пунктах.
[000188] ПУНКТ 1. Способ (1400) обработки поискового запроса, способ выполняется на электронном устройстве (302), электронное устройстве (302) хранит, в своем постоянном хранилище (306), оффлайн базу (328) данных результатов запросов, и оффлайн база (328) данных результатов запросов включает в себя:
a. индекс (402) оффлайн запросов, хранящий один или несколько оффлайн поисковых запросов (510), каждый из одного или нескольких оффлайн поисковых запросов (510) связан с соответствующим указателем (508) на шаблон оффлайн страницы результатов поиска (SERP);
b. индекс (408) шаблонов оффлайн SERP хранит один или несколько шаблонов (712, 714) оффлайн SERP, каждый из одного или нескольких шаблонов (712, 714) оффлайн SERP включает в себя список из одного или нескольких указателей (702) на элементы;
c. по меньшей мере один индекс (406) элементов SERP хранит множество элементов (604) SERP, и каждый элемент SERP связан по меньшей мере с одним или несколькими указателями (702) на элементы, множество элементов (604) SERP организовано с учетом соответствующего типа элемента SERP;
способ (1400), включающий в себя:
a. получение (1402) поискового запроса (902) от пользователя, связанного с электронным устройством (302);
b. определение (1404) того, хранится ли поисковый запрос (902) в индексе (402) оффлайн запросов путем сравнения поискового запроса (902) с одним или несколькими сохраненными оффлайн поисковыми запросами (510);
c. в ответ (1406) на определение того, что поисковый запрос (902) совпадает с данным оффлайн поисковым запросом (504), определение указателя (508В) на шаблон оффлайн SERP, связанного с данным оффлайн поисковым запросом (504);
d. определение (1408), на основе указателя (508В) на шаблон оффлайн SERP, соответствующего шаблона (712) оффлайн SERP, сохраненного в индексе (408) шаблонов оффлайн SERP;
e. получение (1410) доступа к списку, связанному с соответствующим шаблоном (712) оффлайн SERP;
f. извлечение (1412), для каждого из одного или нескольких указателей (708А, 708В, 708С, 708D) на элементы из списка, соответствующего элемента (116) SERP по меньшей мере из одного индекса (406) элементов SERP;
g. создание (1414) оффлайн SERP (1302) путем компиляции извлеченных элементов SERP; и
h. отображение (1416) оффлайн SERP (132) на электронном устройстве (302).
[000189] ПУНКТ 2. Способ по п. 1, в котором один или несколько оффлайн поисковых запросов (510) хранятся в массиве в алфавитном порядке и далее кластеризуются на один или несколько кластеров (506) оффлайн поисковых запросов, каждый из которых включает в себя подмножество сохраненных оффлайн поисковых запросов (510), начинающихся с одинаковых первых N символов.
[000190] ПУНКТ 3. Способ по любому из пп. 1-2, в котором оффлайн база (328) данных результатов запросов далее включает в себя индекс (410) частичных оффлайн запросов, хранящий один или несколько уникальных наборов символов (802), созданных на основе первых N символов одного или нескольких оффлайн поисковых запросов (510), каждый из одного или нескольких уникальных наборов символов (802) связан с соответствующим указателем (804) на кластер запросов.
[000191] ПУНКТ 4. Способ по п. 3, в котором до определения того, сохранен ли поисковый запрос (902) в индексе (402) оффлайн запросов, способ далее включает в себя:
a. парсинг части (1002) поискового запроса (902), часть включает в себя первые N символов поискового запроса (902);
b. определение того, хранится ли часть (1002) в индексе (410) частичных оффлайн запросов, путем сравнения части (1002) с одним или несколькими наборами символов (802);
c. в ответ на определение того, что часть (1002) совпадает с данным набором символов (802А), определение соответствующего указателя (804А) на кластер; и
d. получение доступа к данному кластеру (506В) оффлайн поисковых запросов на основе данного указателя (804А) на кластер запросов.
[000192] ПУНКТ 5. Способ по п. 4, в котором определение того, хранится ли поисковый запрос (902) в индексе (402) оффлайн запросов, включает в себя определение того, хранится ли поисковый запрос (902) в данном оффлайн кластере (506В) поисковых запросов.
[000193] ПУНКТ 6. Способ по любому из пп. 1-5, в котором:
a. каждый из одного или нескольких оффлайн поисковых запросов (510) обладает уникальным значением (516) позиции запроса в индексе (402) оффлайн запросов;
b. каждый из одного или нескольких шаблонов (712, 714) SERP соответствует соответствующему оффлайн поисковому запросу (510); и
c. каждый из одного или нескольких шаблонов (712, 714) SERP хранится в индексе (408) оффлайн шаблонов SERP в порядке, определенном на основе значения (516) позиции запроса в соответствующем оффлайн поисковом запросе (510).
[000194] ПУНКТ 7. Способ по п. 6, в котором каждый из одного или нескольких указателей (708А, 708В, 708С, 708D) на элементы соответствующего шаблона (712) SERP обладает уникальным значением (716) позиции указателя на элемент в индексе (408) оффлайн шаблонов SERP.
[000195] ПУНКТ 8. Способ по п. 7, в котором соответствующий шаблон (712) оффлайн SERP содержит по меньшей мере два указателя (708А, 708В, 708С, 708D) на элементы, каждый из которых связан с соответствующими элементами (216) SERP, один из по меньшей мере двух указателей элементов обладает наименьшим значением позиции (716) указателя на элемент в соответствующем шаблоне (408) оффлайн SERP, и другой из по меньшей мере двух указателей на элементы обладает наибольшим значением (716) позиции указателя на элемент в соответствующем шаблоне (408) оффлайн SERP.
[000196] ПУНКТ 9. Способ по п. 8, в котором указатель (508В) на шаблон оффлайн SERP включает в себя индикацию на указатель (708А) элемента, обладающий наименьшим значением (716А) позиции в соответствующем шаблоне (408) SERP.
[000197] ПУНКТ 10. Способ по п. 9, в котором извлечение соответствующего элемента SERP включает в себя последовательное извлечение соответствующих элементов SERP, начиная с соответствующего элемента SERP, связанного с указателем на элемент, обладающим наименьшим значением (716) позиции, и заканчивая после извлечения соответствующего элемента SERP, связанного с соответствующим указателем на элемент, обладающим наибольшим значением (716) позиции.
[000198] ПУНКТ 11. Способ по п. 10, в котором компиляция извлеченных элементов SERP включает в себя последовательную компиляцию элемента (216) SERP, связанного с указателем на элемент, обладающим наименьшим значением (716) позиции, до элемента SERP, связанного с указателем на элемент, обладающим наибольшим значением (716) позиции.
[000199] ПУНКТ 12. Способ по п. 11, в котором по меньшей мере один индекс (406) элементов SERP включает в себя множество индексов (406А, 406В, 406С, 406D) элементов SERP, каждый из множества индексов элементов SERP хранит элементы (604) SERP конкретного соответствующего типа элементов SERP.
[000200] ПУНКТ 13. Способ по п. 12, в котором множество индексов элементов SERP включает в себя:
a. индекс (406В) элементов единого локатора ресурса;
b. индекс (406А) элементов заголовка;
c. индекс (406С) элементов сниппета; и
d. индекс (406D) элементов фавикона.
[000201] ПУНКТ 14. Способ по п. 1, в котором оффлайн база (328) данных результатов запросов была создана и заранее загружена в постоянное хранилище (306) сервером (314) поисковой системы с помощью сети (312) передачи данных до выполнения способа (1400).
[000202] ПУНКТ 15. Способ по п. 14, в котором оффлайн база (328) данных результатов запросов была создана на основе SERP, заранее созданной сервером (314) поисковой системы на основе поисковых запросов пользователей с третьей стороны.
[000203] ПУНКТ 16. Способ по п. 14, в котором по меньшей мере один индекс (408) шаблонов оффлайн SERP хранит заранее определенное число шаблонов оффлайн SERP, заранее определенное число было определено оператором сервера (314) поисковой системы для удовлетворения конкретного числа поисковых запросов от пользователя.
[000204] ПУНКТ 17. Способ по п. 14, в котором каждый шаблон оффлайн SERP включает в себя заранее определенное число указателей на элементы.
[000205] ПУНКТ 18. Способ по п. 14, в котором один или несколько шаблонов (712, 714) оффлайн SERP включает в себя первый шаблон (712) оффлайн SERP и второй шаблон (714) оффлайн SERP, число указателей (702) на элементы первого шаблона (712) оффлайн SERP, которые отличаются от числа указателей (702) на элементы второго шаблона (714) оффлайн SERP.
[000206] ПУНКТ 19. Способ по любому из пп. 1-18, в котором определение того, сохранен ли поисковый запрос в индексе поисковых запросов, осуществляется в ответ на определение того:
a. что отсутствует связь между электронным устройством (302) и сервером (314) поисковой системы, с которым электронное устройство (302) соединяется через сеть (312) передачи данных; или
b. что существует медленное соединение между электронным устройством (302) и сервером (314) поисковой системы.
[000207] ПУНКТ 20. Электронное устройство (302), выполнено с возможностью обрабатывать поисковый запрос, электронное устройство (302) включает в себя:
оффлайн базу (328) данных поисковых результатов в постоянном хранилище (306), оффлайн база (328) данных поисковых результатов включает в себя:
a. индекс (402) оффлайн запросов, хранящий один или несколько оффлайн поисковых запросов (510), каждый из одного или нескольких оффлайн поисковых запросов (510) связан с соответствующим указателем (508) на шаблон оффлайн страницы результатов поиска (SERP);
b. индекс (408) шаблонов оффлайн SERP хранит один или несколько шаблонов (712, 714) оффлайн SERP, каждый из одного или нескольких шаблонов (712, 714) оффлайн SERP включает в себя список из одного или нескольких указателей (702) на элементы;
с. по меньшей мере один индекс (406) элементов SERP хранит множество элементов (604) SERP, и каждый элемент SERP связан по меньшей мере с одним или несколькими указателями (702) на элементы, множество элементов (604) SERP организовано с учетом соответствующего типа элемента SERP;
по меньшей мере один компьютерный процессор (304), который выполнен с возможностью выполнять способ по любому из пп. 1-19.

Claims (63)

1. Способ обработки поискового запроса, способ выполняется на электронном устройстве, электронное устройстве хранит, в своем постоянном хранилище, оффлайн базу данных результатов запросов, и оффлайн база данных результатов запросов включает в себя:
индекс оффлайн запросов, хранящий один или несколько оффлайн поисковых запросов, каждый из одного или нескольких оффлайн поисковых запросов связан с соответствующим указателем на шаблон оффлайн страницы результатов поиска (SERP);
индекс шаблонов оффлайн SERP хранит один или несколько шаблонов оффлайн SERP, каждый из одного или нескольких шаблонов оффлайн SERP включает в себя список из одного или нескольких указателей на элементы;
по меньшей мере один индекс элементов SERP хранит множество элементов SERP, и каждый элемент SERP связан по меньшей мере с одним или несколькими указателями на элементы, множество элементов SERP организовано с учетом соответствующего типа элемента SERP;
способ включает в себя:
получение поискового запроса от пользователя, связанного с электронным устройством;
определение того, хранится ли поисковый запрос в индексе оффлайн запросов, путем сравнения поискового запроса с одним или несколькими сохраненными оффлайн поисковыми запросами;
в ответ на определение того, что поисковый запрос совпадает с данным оффлайн поисковым запросом, определение указателя на шаблон оффлайн SERP, связанного с данным оффлайн поисковым запросом;
определение, на основе указателя на шаблон оффлайн SERP, соответствующего шаблона оффлайн SERP, сохраненного в индексе шаблонов оффлайн SERP;
получение доступа к списку, связанному с соответствующим шаблоном оффлайн SERP;
извлечение, для каждого из одного или нескольких указателей на элементы из списка, соответствующего элемента SERP по меньшей мере из одного индекса элементов SERP;
создание оффлайн SERP путем компиляции извлеченных элементов SERP; и
отображение оффлайн SERP на электронном устройстве.
2. Способ по п. 1, в котором один или несколько оффлайн поисковых запросов хранятся в массиве в алфавитном порядке и далее кластеризуются на один или несколько кластеров оффлайн поисковых запросов, каждый из которых включает в себя подмножество сохраненных оффлайн поисковых запросов, начинающихся с одинаковых первых N символов.
3. Способ по п. 2, в котором оффлайн база данных результатов запросов далее включает в себя индекс частичных оффлайн запросов, хранящий один или несколько уникальных наборов символов, созданных на основе первых N символов одного или нескольких оффлайн поисковых запросов, каждый из одного или нескольких уникальных наборов символов связан с соответствующим указателем на кластер запросов.
4. Способ по п. 3, в котором до определения того, сохранен ли поисковый запрос в индексе оффлайн запросов, способ далее включает в себя:
парсинг части поискового запроса, часть включает в себя первые N символов поискового запроса;
определение того, хранится ли часть в индексе частичных оффлайн запросов путем сравнения части с одним или несколькими наборами символов;
в ответ на определение того, что часть совпадает с данным набором символов, определение соответствующего указателя на кластер; и
получение доступа к данному кластеру оффлайн поисковых запросов на основе данного указателя на кластер запросов.
5. Способ по п. 4, в котором определение того, хранится ли поисковый запрос в индексе оффлайн запросов, включает в себя определение того, хранится ли поисковый запрос в данном оффлайн кластере поисковых запросов.
6. Способ по п. 1, в котором:
каждый из одного или нескольких оффлайн поисковых запросов обладает уникальным значением позиции запроса в индексе оффлайн запросов;
каждый из одного или нескольких шаблонов SERP соответствует соответствующему оффлайн поисковому запросу; и
каждый из одного или нескольких шаблонов SERP хранится в индексе оффлайн шаблонов SERP в порядке, определенном на основе значения позиции запроса в соответствующем оффлайн поисковом запросе.
7. Способ по п. 6, в котором каждый из одного или нескольких указателей на элементы соответствующего шаблона SERP обладает уникальным значением позиции указателя на элемент в индексе оффлайн шаблонов SERP.
8. Способ по п. 7, в котором соответствующий шаблон оффлайн SERP содержит по меньшей мере два указателя на элементы, каждый из которых связан с соответствующими элементами SERP, один из по меньшей мере двух указателей элементов обладает наименьшим значением позиции указателя на элемент в соответствующем шаблоне оффлайн SERP, и другой из по меньшей мере двух указателей на элементы обладает наибольшим значением позиции указателя на элемент в соответствующем шаблоне оффлайн SERP.
9. Способ по п. 8, в котором указатель на шаблон оффлайн SERP включает в себя индикацию на указатель элемента, обладающий наименьшим значением позиции в соответствующем шаблоне SERP.
10. Способ по п. 9, в котором извлечение соответствующего элемента SERP включает в себя последовательное извлечение соответствующих элементов SERP, начиная с соответствующего элемента SERP, связанного с указателем на элемент, обладающим наименьшим значением позиции, и заканчивая после извлечения соответствующего элемента SERP, связанного с соответствующим указателем на элемент, обладающим наибольшим значением позиции.
11. Способ по п. 10, в котором компиляция извлеченных элементов SERP включает в себя последовательную компиляцию элемента SERP, связанного с указателем на элемент, обладающим наименьшим значением позиции, до элемента SERP, связанного с указателем на элемент, обладающим наибольшим значением позиции.
12. Способ по п. 1, в котором по меньшей мере один индекс элементов SERP включает в себя множество индексов элементов SERP, каждый из множества индексов элементов SERP хранит элементы SERP конкретного соответствующего типа элементов SERP.
13. Способ по п. 12, в котором множество индексов элементов SERP включает в себя:
- индекс элементов единого локатора ресурса;
- индекс элементов заголовка;
- индекс элементов сниппета (отрывка);
- индекс элементов фавикона; и
14. Способ по п. 1, в котором оффлайн база данных результатов запросов была создана и заранее загружена в постоянное хранилище сервером поисковой системы с помощью сети передачи данных до выполнения способа.
15. Способ по п. 14, в котором оффлайн база данных результатов запросов была создана на основе SERP, заранее созданной сервером поисковой системы на основе поисковых запросов пользователей с третьей стороны.
16. Способ по п. 14, в котором по меньшей мере один индекс шаблонов оффлайн SERP хранит заранее определенное число шаблонов оффлайн SERP, заранее определенное число было определено оператором сервера поисковой системы для удовлетворения конкретного числа поисковых запросов от пользователя.
17. Способ по п. 14, в котором каждый шаблон оффлайн SERP включает в себя заранее определенное число указателей на элементы.
18. Способ по п. 14, в котором один или несколько шаблонов оффлайн SERP включают в себя первый шаблон оффлайн SERP и второй шаблон оффлайн SERP, число указателей на элементы первого шаблона оффлайн SERP, которые отличаются от числа указателей на элементы второго шаблона оффлайн SERP.
19. Способ по п. 1, в котором определение того, сохранен ли поисковый запрос в индексе поисковых запросов осуществляется в ответ на определение того:
что отсутствует связь между электронным устройством и сервером поисковой системы, с которым электронное устройство соединяется через сеть передачи данных; или
что существует медленное соединение между электронным устройством и сервером поисковой системы.
20. Электронное устройство выполнено с возможностью обрабатывать поисковый запрос, электронное устройство включает в себя:
оффлайн базу данных поисковых результатов в постоянном хранилище, оффлайн база данных поисковых результатов включает в себя:
индекс оффлайн запросов, хранящий один или несколько оффлайн поисковых запросов, каждый из одного или нескольких оффлайн поисковых запросов связан с соответствующим указателем на шаблон оффлайн страницы результатов поиска (SERP);
индекс шаблонов оффлайн SERP хранит один или несколько шаблонов оффлайн SERP, каждый из одного или нескольких шаблонов оффлайн SERP включает в себя список из одного или нескольких указателей на элементы;
по меньшей мере один индекс элементов SERP хранит множество элементов SERP, и каждый элемент SERP связан по меньшей мере с одним или несколькими указателями на элементы, множество элементов SERP организовано с учетом соответствующего типа элемента SERP;
по меньшей мере один компьютерный процессор, выполненный с возможностью осуществлять:
получение поискового запроса от пользователя, связанного с электронным устройством;
определение того, хранится ли поисковый запрос в индексе оффлайн запросов путем сравнения поискового запроса с одним или несколькими сохраненными оффлайн поисковыми запросами;
в ответ на определение того, что поисковый запрос совпадает с данным оффлайн поисковым запросом, определение указателя на шаблон оффлайн SERP, связанного с данным оффлайн поисковым запросом;
определение, на основе указателя на шаблон оффлайн SERP, соответствующего шаблона оффлайн SERP, сохраненного в индексе шаблонов оффлайн SERP;
получение доступа к списку, связанному с соответствующим шаблоном оффлайн SERP;
извлечение, для каждого из одного или нескольких указателей на элементы из списка, соответствующего элемента SERP по меньшей мере из одного индекса элементов SERP;
создание оффлайн SERP путем компиляции извлеченных элементов SERP; и
отображение оффлайн SERP на электронном устройстве.
21. Электронное устройство по п. 20, в котором
оффлайн база данных результатов запросов была создана и заранее загружена в постоянное хранилище сервером поисковой системы с помощью сети передачи данных до выполнения способа, и
определение того, сохранен ли поисковый запрос в индексе поисковых запросов осуществляется в ответ на определение того:
что отсутствует связь между электронным устройством и сервером поисковой системы, с которым электронное устройство соединяется через сеть передачи данных; или
что существует медленное соединение между электронным устройством и сервером поисковой системы.
RU2017111250A 2017-04-04 2017-04-04 Способ и система для создания оффлайн страницы результатов поиска RU2666331C1 (ru)

Priority Applications (3)

Application Number Priority Date Filing Date Title
RU2017111250A RU2666331C1 (ru) 2017-04-04 2017-04-04 Способ и система для создания оффлайн страницы результатов поиска
US15/785,719 US10713308B2 (en) 2017-04-04 2017-10-17 Method and system for generating an offline search engine result page
US16/891,323 US11347815B2 (en) 2017-04-04 2020-06-03 Method and system for generating an offline search engine result page

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2017111250A RU2666331C1 (ru) 2017-04-04 2017-04-04 Способ и система для создания оффлайн страницы результатов поиска

Publications (1)

Publication Number Publication Date
RU2666331C1 true RU2666331C1 (ru) 2018-09-06

Family

ID=63459882

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017111250A RU2666331C1 (ru) 2017-04-04 2017-04-04 Способ и система для создания оффлайн страницы результатов поиска

Country Status (2)

Country Link
US (2) US10713308B2 (ru)
RU (1) RU2666331C1 (ru)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10992615B2 (en) * 2017-12-01 2021-04-27 Trusted Voices, Inc. Dynamic open graph module for posting content one or more platforms
US11526565B2 (en) * 2019-04-05 2022-12-13 Ovh Method of and system for clustering search queries
US20210192571A1 (en) * 2019-12-20 2021-06-24 Microsoft Technology Licensing, Llc Cobranded search experience for publishing websites
CN111144128B (zh) * 2019-12-26 2023-07-25 北京百度网讯科技有限公司 语义解析方法和装置
US11210291B2 (en) * 2020-05-11 2021-12-28 Microsoft Technology Licensing, Llc Differential indexing for fast database search
US11853381B2 (en) 2020-11-13 2023-12-26 Google Llc Hybrid fetching using a on-device cache

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292677A1 (en) * 2008-02-15 2009-11-26 Wordstream, Inc. Integrated web analytics and actionable workbench tools for search engine optimization and marketing
WO2014025711A1 (en) * 2012-08-08 2014-02-13 Microsoft Corporation Search user interface using outward physical expressions
RU2560815C2 (ru) * 2009-09-04 2015-08-20 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Таблица содержания для уточнения поискового запроса
US20160019219A1 (en) * 2014-06-30 2016-01-21 Yandex Europe Ag Search result ranker
US20160283593A1 (en) * 2015-03-23 2016-09-29 Microsoft Technology Licensing, Llc Salient terms and entities for caption generation and presentation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257571B2 (en) * 2004-01-26 2007-08-14 Microsoft Corporation Automatic query clustering
US7707142B1 (en) * 2004-03-31 2010-04-27 Google Inc. Methods and systems for performing an offline search
US8010515B2 (en) 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US20090234711A1 (en) 2005-09-14 2009-09-17 Jorey Ramer Aggregation of behavioral profile data using a monetization platform
US8001215B2 (en) 2005-11-29 2011-08-16 Microsoft Corporation Unlimited history store for navigational web applications
US20070271245A1 (en) * 2006-05-19 2007-11-22 Rolf Repasi System and method for searching a database
US7882077B2 (en) * 2006-10-17 2011-02-01 Commvault Systems, Inc. Method and system for offline indexing of content and classifying stored data
US8484220B2 (en) * 2007-03-06 2013-07-09 Mcafee, Inc. Clustered index with differentiated subfields
US8688726B2 (en) * 2011-05-06 2014-04-01 Microsoft Corporation Location-aware application searching
US8856100B2 (en) * 2012-07-31 2014-10-07 International Business Machines Corporation Displaying browse sequence with search results
US20160055203A1 (en) 2014-08-22 2016-02-25 Microsoft Corporation Method for record selection to avoid negatively impacting latency
US9767198B2 (en) 2014-08-25 2017-09-19 Excalibur Ip, Llc Method and system for presenting content summary of search results

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292677A1 (en) * 2008-02-15 2009-11-26 Wordstream, Inc. Integrated web analytics and actionable workbench tools for search engine optimization and marketing
RU2560815C2 (ru) * 2009-09-04 2015-08-20 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Таблица содержания для уточнения поискового запроса
WO2014025711A1 (en) * 2012-08-08 2014-02-13 Microsoft Corporation Search user interface using outward physical expressions
US20160019219A1 (en) * 2014-06-30 2016-01-21 Yandex Europe Ag Search result ranker
US20160283593A1 (en) * 2015-03-23 2016-09-29 Microsoft Technology Licensing, Llc Salient terms and entities for caption generation and presentation

Also Published As

Publication number Publication date
US11347815B2 (en) 2022-05-31
US20180285458A1 (en) 2018-10-04
US10713308B2 (en) 2020-07-14
US20200293582A1 (en) 2020-09-17

Similar Documents

Publication Publication Date Title
RU2666331C1 (ru) Способ и система для создания оффлайн страницы результатов поиска
US8612423B2 (en) Search cache for document search
JP5745627B2 (ja) 予測的なクエリ提案のキャッシュ
US8090708B1 (en) Searching indexed and non-indexed resources for content
US8631097B1 (en) Methods and systems for finding a mobile and non-mobile page pair
US20140289236A1 (en) Refining search results for a compound search query
RU2595497C2 (ru) Способ отображения веб-ресурса пользователю (варианты) и электронное устройство
US10909170B2 (en) Method for processing and rendering feed-like based images for mobile devices
US20150339387A1 (en) Method of and system for furnishing a user of a client device with a network resource
WO2020106341A1 (en) Performing image search using content labels
US11210134B2 (en) Atomic execution unit for object storage
US9773035B1 (en) System and method for an annotation search index
RU2711123C2 (ru) Способ и система компьютерной обработки одной или нескольких цитат в цифровых текстах для определения их автора
US9449095B1 (en) Revising search queries
US11816159B2 (en) Method of and system for generating a training set for a machine learning algorithm (MLA)
WO2022265744A1 (en) Smart browser history search
US20170185681A1 (en) Method of and system for processing a prefix associated with a search query
US10592573B1 (en) Interactively suggesting network location
US11120096B2 (en) Method and system for generating an object card
US11568155B2 (en) Method and system of translating a source phrase in a first language into a target phrase in a second language
US11663271B1 (en) Serverless search using an index database section
RU2790033C2 (ru) Система и способ для формирования обучающего набора для алгоритма машинного обучения
CN108182280B (zh) 检索方法、服务端及检索系统
US20210374606A1 (en) Method of and system for generating a training set for a machine learning algorithm (mla)
WO2021050082A1 (en) Text entry recommendations based on stored search results