RU2412477C2 - Механизм отложенного поиска - Google Patents
Механизм отложенного поиска Download PDFInfo
- Publication number
- RU2412477C2 RU2412477C2 RU2007147645/08A RU2007147645A RU2412477C2 RU 2412477 C2 RU2412477 C2 RU 2412477C2 RU 2007147645/08 A RU2007147645/08 A RU 2007147645/08A RU 2007147645 A RU2007147645 A RU 2007147645A RU 2412477 C2 RU2412477 C2 RU 2412477C2
- Authority
- RU
- Russia
- Prior art keywords
- request
- requests
- priority
- indexing
- low priority
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/328—Management therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Изобретение относится к области вычислительной техники и может быть использовано в системах, имеющих операционную систему. Техническим результатом является увеличение скорости обработки запросов. Индексация документов осуществляется с использованием низкоприоритетных запросов ввода/вывода. Низкоприоритетные запросы ввода/вывода могут быть использованы для доступа к документам, подлежащим индексации. Низкоприоритетные запросы ввода/вывода также могут быть использованы для записи информации в индекс. Запросы с более высоким приоритетом могут быть использованы для запросов ввода/вывода на получение доступа к индексу в ответ на запросы пользователя. Приоритет запросов ввода/вывода может быть установлен на потоковой основе в противоположность установке на процессией основе (который может генерировать два или более потока, для которых может быть желательно назначение разных приоритетов). 6 н. и 14 з.п. ф-лы, 5 ил.
Description
УРОВЕНЬ ТЕХНИКИ
Некоторые операционные системы, разработанные для персональных компьютеров (включая переносные/блокнотные компьютеры и портативные вычислительные устройства, а также настольные компьютеры), имеют полнотекстовую поисковую систему, которая позволяет пользователю искать выбранное слово или слова в тексте документа, сохраненного в персональном компьютере. Некоторые полнотекстовые поисковые системы включают в себя подсистему индексации, которая в основном контролирует документы, хранящиеся в персональном компьютере, и сохраняет каждое слово документа в индекс, так что пользователь может производить индексированные поиски, используя ключевые слова. Этот процесс индексации интенсивно использует центральный процессор (ЦПУ) и ввод/вывод данных (I/O). Таким образом, если пользователь желает произвести другое действие, в то время как осуществляется процесс индексации, пользователь обычно испытывает задержки при выполнении этого действия, которые приводят к негативному воздействию на «пользовательское восприятие».
Одним из подходов для минимизации задержек ответа на действие пользователя во время процесса индексации является временная приостановка индексации, когда обнаружено действие пользователя. Полнотекстовая поисковая система может содержать логику для обнаружения действий пользователя и "предсказать" когда действие пользователя закончится (или период простоя), чтобы процесс индексации мог быть возобновлен. Когда действие пользователя обнаружено, процесс индексации может быть временно приостановлен, но обычно также существует задержка при переходе от процесса индексации к состоянию остановки (например, чтобы завершить операцию или задачу, которая выполняется в настоящее время как часть процесса индексации). Более того, если прогноз периода простоя неточен, процесс индексации вызывает вышеупомянутые задержки, которые могут ухудшить пользовательское восприятие. Кроме того, логика, используемая, чтобы обнаружить действие пользователя и периоды простоя, увеличивает сложность полнотекстовой поисковой системы и использует ресурсы ЦПУ. Хотя обсуждались некоторые недостатки обычных систем, эта вспомогательная информация не предназначена для обозначения проблем, которые должны быть адресованы заявленному объекту изобретения.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Это краткое изложение предоставлено для того, чтобы в упрощенной форме ознакомить с подбором концепций, которые дополнительно описаны ниже в разделе «Подробное описание». Это краткое изложение не предназначено для определения основных признаков или существенных признаков заявленного объекта изобретения и не предназначено для использования в качестве помощи при определении объема заявленного объекта изобретения.
Согласно аспектам различных описанных вариантов осуществления индексация документов производится с использованием низкоприоритетных запросов ввода/вывода. Этот аспект может быть исполнен в системах, имеющих операционную систему, которая поддерживает по меньшей мере два уровня приоритета для запросов ввода/вывода к их системе регистрации документов. В некоторых исполнениях низкоприоритетные запросы ввода/вывода используются для доступа к документам, которые должны быть индексированы, и для записи информации в индекс, в то время как высокоприоритетные запросы используются для запросов ввода/вывода, чтобы получить доступ к индексу в ответ на запрос пользователя. Также, в некоторых исполнениях приоритет запроса ввода/вывода может быть установлен на потоковой основе в противоположность установке на процессной основе (который может генерировать два или более потока, для которых может быть желательно назначение разных приоритетов).
Варианты осуществления могут быть выполнены как компьютерный процесс, компьютерная система (включая мобильные портативные вычислительные устройства) или как продукт производства, такой как компьютерный программный продукт. Компьютерный программный продукт может быть компьютерным носителем информации, читаемым компьютерной системой и кодирующим компьютерную программу инструкций для выполнения компьютерных процессов. Компьютерный программный продукт также может быть передаваемым сигналом на оборудовании связи, читаемым компьютерной системой и кодирующим компьютерную программу инструкций для выполнения компьютерных процессов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Неограничивающие и неисчерпывающие варианты осуществлений описаны со ссылкой на следующие фигуры, на которых аналогичные ссылки-числа относятся к аналогичным частям во всех различных видах, если это не указано специально.
Фиг.1 - схема, иллюстрирующая примерную систему с процессом поиска/индексации и файловой системой, поддерживающей высоко- и низкоприоритетные запросы ввода/вывода, согласно одному варианту осуществления;
Фиг.2 - схема, иллюстрирующая примерную систему поиска/индексации, согласно одному варианту осуществления;
Фиг.3 - блок-схема, иллюстрирующая поток выполнения операций процесса индексации при передаче запросов ввода/вывода к файловой системе, согласно одному варианту осуществления;
Фиг.4 - блок-схема, иллюстрирующая поток выполнения операций индексации документа, согласно одному варианту осуществления;
Фиг.5 - структурная схема, иллюстрирующая примерную вычислительную среду, пригодную для исполнения систем и потоков выполнения операций для Фигур с 1 по 5, согласно одному варианту осуществления.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Различные варианты осуществления описаны более полно ниже со ссылкой на сопровождающие чертежи, которые составляют их часть и которые показывают отдельные примерные варианты осуществлений для практического использования изобретения. Тем не менее, варианты осуществлений могут быть исполнены во многих различных формах и не должны быть истолкованы как ограниченные вариантами осуществлений, приведенными здесь далее; скорее, эти варианты осуществлений предоставлены так, чтобы раскрытие изобретения было всесторонним и полным и полностью выражало область изобретения специалистам в данной области техники. Варианты осуществлений могут быть практически использованы как способы, системы или устройства. В соответствии с этим варианты осуществлений могут принимать форму аппаратной реализации, полностью программной реализации или реализации, сочетающей программные и аппаратные аспекты. Следующее подробное описание, следовательно, не следует понимать в ограниченном смысле.
Логические операции различных вариантов осуществлений исполнены (а) как последовательность этапов компьютерного исполнения, работающих в вычислительной системе и/или (b) как взаимосвязанные машинные модули в рамках вычислительной системы. Исполнение является вопросом предпочтения в зависимости от требований к рабочим характеристикам вычислительной системы, исполняющей вариант осуществления. В соответствии с этим логические операции, составляющие варианты осуществлений, описанные здесь, альтернативно называются здесь операциями, этапами или модулями.
Фиг.1 иллюстрирует систему 100, которая поддерживает низкоприоритетные запросы ввода/вывода для индексации документов в целях поиска. В этом примерном варианте осуществления система 100 включает в себя пользовательские процессы с 102-1 по 102-N, файловую систему 104, которая поддерживает высоко- и низкоприоритетные запросы ввода/вывода (например, используя очередь 106 высокоприоритетных запросов ввода/вывода и очередь 108 низкоприоритетных запросов ввода/вывода), и информационный склад 110 (например, дисковод), который может быть использован для сохранения документов, которые должны быть индексированы в целях поиска. Любые подходящие файловые системы, которые поддерживают высоко- и низкоприоритетные запросы ввода/вывода, могут быть использованы, чтобы реализовать файловую систему 104. В одном варианте осуществления файловая система 104 реализует очереди 106 и 108 высоко- и низкоприоритетные запросы ввода/вывода, как описано в Публикации Патентной Заявки США № US2004/0068627A1, озаглавленной «Способы и Механизмы Проактивного Управления Памятью», опубликованной 8 апреля 2004 года.
Несмотря на то, что термины «низкоприоритетный» и «высокоприоритетный» использованы выше, они использованы как относительные термины, в которых низкоприоритетные запросы ввода/вывода имеют более низкий приоритет, чем высокоприоритетные запросы ввода/вывода. В некоторых вариантах осуществлений могут быть использованы другие термины, такие как, например, «обычный» и «низкий» приоритеты. В других вариантах осуществлений может существовать более двух уровней приоритетов, доступных для запросов ввода/вывода. В таких вариантах осуществлений запросы ввода/вывода для индексации могут быть переданы при самом низком приоритете, допуская передачу запросов ввода/вывода из других процессов и/или потоков, посланных с более высокими уровнями приоритета.
В этом примерном варианте осуществления пользовательский процесс 102-N является процессом индексации для индексации документов в целях поиска (например, полнотекстовой поиск документов). Например, процесс индексации 102-N может записать все слова документа в индекс (повторяя это для всех документов, сохраненных в системе 100), который затем может быть использован для проведения полнотекстового поиска документов, сохраненных в системе 100.
Другие пользовательские процессы (например, пользовательские процессы 102-1 и 102-2) могут быть любыми другими процессами, которые могут взаимодействовать с файловой системой 104 для доступа к файлам, сохраненным в информационный склад 110. В зависимости от действий пользователя может осуществляться множество пользовательских процессов, небольшое количество пользовательских процессов или осуществляться некоторые сценарии одного процесса 102-N индексации (который может быть прекращен, если все документы информационного склада 110 проиндексированы).
При работе пользовательские процессы с 102-1 по 102-N обычно передают запрос ввода/вывода в файловую систему 104 время от времени, как указано стрелками с 112-1 по 112-N. Для многих пользовательских процессов эти запросы ввода/вывода передаются с высоким приоритетом. Например, приоритетные процессы, такие как приложения (например, текстовый процессор), реагирующие на пользовательский ввод, медиаплеер-приложение, воспроизводящее мультимедийные данные, браузер, загружающий страницу, и т.д., обычно отправляют запросы ввода/вывода с высоким приоритетом.
Тем не менее, в соответствии в этим вариантом осуществления все запросы ввода/вывода, переданные процессом 102-N индексации, переданы с низким приоритетом и добавлены в очередь 108 низкоприоритетных запросов ввода/вывода, как указано стрелкой 114. Таким образом, запросы ввода/вывода от процесса 102-N индексации будут выполнены после того, как будут обслужены все высокоприоритетные запросы ввода/вывода в очереди 106 высокоприоритетных запросов ввода/вывода. Этот признак может выгодно уменьшить ухудшение восприятия пользователя, вызванное процессами индексации в некоторых вариантах осуществления. Дополнительно в некоторых вариантах осуществления предварительно обсужденная логика обнаружения простоя исключается, тем самым, уменьшая сложность подсистемы индексации. Кроме того, использование низкоприоритетных запросов ввода/вывода для процессов индексации позволяет избежать проблем с ошибками при обнаружении периодов простоя и задержек при временной приостановке процессов индексации, которые обычно существуют в схемах обнаружения простоя.
Фиг.2 иллюстрирует примерную поисковую/индексирующую систему 200 согласно одному варианту осуществления. В этом варианте осуществления система 200 включает в себя полнотекстовые поисковые/индексирующие процессы (или основные процессы) 202, процесс 204 полнотекстовой индексации в «песочнице» (или процесс загрузки в «песочницу»), информационный склад 206 документов и информационный склад 208 полнотекстовых каталогизированных данных (или индексов). В этом варианте осуществления основной процесс 202 включает в себя подсистему 210 запросов с высоким приоритетом ввода/вывода (или подсистему запросов) и подсистему 212 индексации с низким приоритетом ввода/вывода. Процесс 204 загрузки в «песочницу» используется, чтобы изолировать компоненты, которые конвертируют документы разных форматов в открытый текст, в этом варианте осуществления, и включает в себя индексирующую/фильтрующую подсистему (или фильтрующую подсистему) 214 с низким приоритетом ввода/вывода.
В этом варианте осуществления подсистема 210 запросов обрабатывает запрос на поиск от пользователя, принятый через интерфейс 216. Пользователь может ввести одно или несколько ключевых слов, которые нужно искать в документах, сохраненных в системе 200. В некоторых вариантах осуществления в ответ на запросы, принятые через интерфейс 216, подсистема 210 запросов обрабатывает запросы и получает доступ к индексированному информационному складу 208 через высокоприоритетные запросы ввода/вывода. Например, подсистема 210 запросов может искать индекс по ключевому слову (словам) и получить из индекса список документов, которые содержат ключевое слово (слова). В варианте осуществления, в котором приоритет ЦПУ может быть выбран для процессов и/или потоков, подсистема 210 запросов может быть настроена для высокоприоритетной обработки ЦПУ. Такая конфигурация (т.е. настройка приоритетов ввода/вывода и ЦПУ на высокий приоритет) может быть выгодна, так как пользователи обычно хотят результатов поиска как можно быстрее и обычно хотят выделить системные ресурсы для этого поиска.
В этом варианте осуществления индексирующая подсистема 212 с низкоприоритетным вводом/выводом встраивают индексы, используемые в полнотекстовом поиске документов. Например, индексирующая подсистема 212 с низкоприоритетным вводом/выводом может получать данные (например, слова и документальные идентификаторы документов, которые содержат в себе слова) из процесса 204 загрузки в «песочницу» и затем соответственно сохранять эти данные в информационном складе 208 индексов. Запись данных в информационный склад 208 индексов является относительно интенсивной для ввода/вывода. Создание индекса (например, определение какие данные следует сохранить в информационном складе 208 индексов и как их следует сохранять в информационном складе 208 индексов) является относительно интенсивной для ЦПУ. В соответствии с этим вариантом осуществления индексирующая подсистема 212 с низкоприоритетным вводом/выводом сохраняет данные в информационном складе 208 индексов, используя низкоприоритетные запросы ввода/вывода. В варианте осуществления, в котором приоритет ЦПУ может быть выбран для процессов и/или потоков, индексирующая подсистема 212 с низкоприоритетным вводом/выводом может быть отрегулирована для низкоприоритетной обработки ЦПУ. Такая конфигурация (т.е. настройка приоритетов ввода/вывода и ЦПУ на низкий приоритет) может быть выгодна, так как пользователи обычно хотят быстрой реакции на действия пользователя (например, пользовательский ввод для выполнения приложения, воспроизведения мультимедийных файлов, загрузки файлов и т.п.) и желают отложить процесс индексации.
В этом варианте осуществления фильтрующая подсистема 214 восстанавливает документы из информационного склада 206 документов и обрабатывает документы для извлечения данных, требуемых индексирующей подсистемой 212 с низкоприоритетным вводом/выводом, чтобы построить индекс. Фильтрующая подсистема 214 считывает содержимое и метаданные с каждого документа, полученного из информационного склада 206 документов, и из документов извлекает слова, которые пользователь может искать в документах, используя подсистему 210 запросов. В одном варианте осуществления фильтрующая подсистема 214 включает в себя фильтрующие компоненты, которые могут конвертировать документ в открытый текст, осуществлять разбивку слов и размещать словарные данные в канале, чтобы они были доступны для индексирующей подсистемы 212 низкоприоритетного ввода/вывода для построения индексов. В другом варианте осуществления разбивка слов осуществляется индексирующей подсистемой 212 низкоприоритетного ввода/вывода.
Несмотря на то, что система 200 иллюстрирована и описана с отдельными модулями или компонентами, в других вариантах осуществления одна или несколько функций, описанных для компонентов или модулей, могут быть выделены в другой компонент или модуль, объединенных в несколько модулей или компонентов, или пропущены.
Примерный поток выполнения операций «Запрос ввода/вывода»
Фиг.3 иллюстрирует поток 300 выполнения операций процесса индексации при передаче запросов ввода/вывода к файловой системе согласно одному варианту осуществления. Поток 300 выполнения операций может быть осуществлен в любой соответствующей вычислительной среде. Например, поток 300 выполнения операций может быть осуществлен процессом индексации, таким как основной процесс 202 системы 200 (Фиг.2), чтобы обработать документы, сохраненные в информационном складе системы, и создать индекс, используемый в выполнении полнотекстового поиска сохраненного документа(ов). Следовательно, описание потока 300 выполнения операций может ссылаться на по меньшей мере один из компонентов Фигуры 2. Тем не менее, любая такая ссылка на компоненты Фигуры 2 сделана только в описательных целях, и следует понимать, что исполнения Фигуры 2 являются не лимитирующей средой для потока 300 выполнения операций.
В блоке 302 процесс индексации ожидает запроса ввода/вывода. В одном варианте осуществления процесс индексации реализуется как основной процесс 202 (Фигура 2), в котором низкоприоритетные запросы ввода/вывода могут быть сгенерированы индексирующей подсистемой, а высокоприоритетные запросы ввода/вывода могут быть сгенерированы подсистемой запроса поиска. Например, индексирующая подсистема может быть выполнена с индексирующей подсистемой, такой как индексирующая подсистема 212 с низкоприоритетным вводом/выводом вместе с фильтрующей подсистемой, такой как фильтрующая подсистема 214. Подсистема запроса поиска может быть выполнена с использованием любого подходящего компонента обработки запроса, как, например, подсистема 210 запроса. Поток 300 выполнения операций может перейти к блоку 304.
В блоке 304 определяется, исходит ли запрос ввода/вывода от индексирующей подсистемы. В одном варианте осуществления процесс индексации определяет, исходит ли запрос ввода/вывода от индексирующей подсистемы проверкой источника запроса. Продолжая описанный выше пример для блока 302, если, например, запрос ввода/вывода исходит от индексирующей подсистемы для записи информации в индекс или если запрос ввода/вывода исходит от фильтрующей подсистемы для доступа к документам, сохраненным в информационном складе документов, тогда система индексации определяет, что запрос ввода/вывода исходит от индексирующей подсистемы и поток 300 выполнения операций может перейти к блоку 308, описанному дополнительно ниже. Тем не менее, если, например, запрос ввода/вывода исходит от подсистемы запросов для поиска индекса для указанного слова (слов), тогда система индексации определяет, что запрос ввода/вывода исходит не от индексирующей подсистемы и поток 300 выполнения операций может перейти к блоку 306. В одном варианте осуществления операционная система реализована с возможностью настройки приоритета регистрационной системы запросов ввода/вывода на основе потоков в противоположность основе процессов. Такая особенность может быть выгодно использована в вариантах осуществления, в которых подсистема запросов и индексирующая подсистема являются частью одного процесса (например, основной процесс 202 Фигуры 2), позволяющего вызываемому пользователем запросу отправлять запросы ввода/вывода с высоким приоритетом, в то время как вызываемые индексирующей подсистемой запросы ввода/вывода могут быть отправлены с низким приоритетом.
В блоке 306 запрос ввода/вывода передается с высоким приоритетом в файловую систему. В одном варианте осуществления система индексации передает запрос ввода/вывода в высокоприоритетную очередь, такую как очередь 106 высокоприоритетных запросов ввода/вывода (Фиг.1). Поток 300 выполнения операций может затем вернуться к блоку 302, ожидая другого запроса ввода/вывода.
В блоке 308 запрос ввода/вывода передается с низким приоритетом в файловую систему. В одном варианте осуществления система индексации передает запрос ввода/вывода в низкоприоритетную очередь, такую как очередь 108 низкоприоритетных запросов ввода/вывода (Фиг.1). Поток 300 выполнения операций может затем вернуться к блоку 302, ожидая другого запроса ввода/вывода.
Не смотря на то, что поток 300 выполнения операций иллюстрирован и описан последовательно в определенной очередности, в других вариантах осуществления операции, описанные в блоках, могут быть выполнены в разных последовательностях, в разное время и/или параллельно. Дополнительно, в некоторых вариантах осуществления одна или несколько операций, описанных в блоках, могут быть выделены в другие блоки, пропущены или объединены.
Примерный поток выполнения операций «Индексация документа»
Фиг.4 иллюстрирует поток 400 выполнения операций при индексации документа, согласно одному варианту осуществления. Поток 400 выполнения операций может быть выполнен в любой соответствующей вычислительной среде. Например, поток 300 выполнения операций может быть выполнен процессом индексации, таким как основной процесс 202 системы 200 (Фиг.2), чтобы обработать документы, сохраненные в информационном складе системы и создать индекс, используемый в выполнении полнотекстового поиска сохраненного документа(ов). Следовательно, описание потока 400 выполнения операций может ссылаться на по меньшей мере один из компонентов Фигуры 2. Тем не менее, любая такая ссылка на компоненты Фигуры 2 сделана только в описательных целях, и следует понимать, что исполнения Фигуры 2 являются нелимитирующей средой для потока 400 выполнения операций.
В блоке 402 документ принимается из файловой системы. В одном варианте осуществления система индексации, такая как система 200 (фигура 2), считывает документ из информационного склада документов, такого как информационный склад 206 (Фигура 2). В соответствии с этим вариантом осуществления документ считывается из информационного склада документов, используя низкоприоритетные запросы ввода/вывода. Например, система индексации может включать в себя фильтрующую подсистему, такую как фильтрующая подсистема 214 (Фиг.2), которая может генерировать запрос ввода/вывода, чтобы считать документ из информационного склада документов. Такая система индексации может быть выполнена с возможностью обнаруживать запросы ввода/вывода от фильтрующей подсистемы (в противоположность подсистеме запросов) и передавать их в регистрационную систему как низкоприоритетные запросы ввода/вывода. Поток 400 выполнения операций может перейти к блоку 404.
В блоке 404 документ, принятый в блоке 402, конвертируется в открытый текстовый документ. В одном варианте осуществления, после того как документ считан в память, вышеупомянутая фильтрующая подсистема конвертирует документ в открытый текстовый документ. Например, документ может содержать метаданные форматирования, разметки (если текст является документом с языком разметки) и т.д. в дополнение к текстовым данным. Поток 400 выполнения операций может перейти к блоку 406.
В блоке 406 открытый текстовый документ, принятый в блоке 404, обрабатывается для разделения открытого текстового документа на отдельные слова (т.е. выполняется процесс разбивки слов). В одном варианте осуществления индексирующая подсистема, такая как индексирующая подсистема 212 низкоприоритетного ввода/вывода (Фигура 2), может выполнить процесс разбивки слов. В дополнение в соответствии с этим вариантом осуществления отдельные слова затем сохраняются в индекс, использующий низкоприоритетные запросы ввода/вывода. Продолжая пример, описанный для блока 402, вышеупомянутая система индексации (которая включает в себя индексирующую подсистему) создана с возможностью обнаруживать запросы ввода/вывода от индексирующих подсистем. В подобном варианте осуществления система индексации передает запросы ввода/вывода, определяемые как исходящие от индексирующей подсистемы к регистрационной системе как низкоприоритетные запросы ввода/вывода. Поток 400 выполнения операций может перейти к блоку 408.
В блоке 408 определяется имеются ли еще документы для индексации. В одном варианте осуществления система индексации определяет, имеются ли еще документы, подлежащие индексации, проверкой вышеупомянутого информационного склада документов для документов, которые не были индексированы. Например, вышеупомянутая фильтрующая подсистема может проверить информационный склад документов, используя низкоприоритетный запросы ввода/вывода. Если обнаружено, что имеется один или несколько документов для индексации, поток 400 выполнения операций может перейти к блоку 410.
В блоке 410 выбирается следующий документ подлежащий индексации. В одном варианте осуществления вышеупомянутая фильтрующая подсистема выбирает следующий документ из информационного склада документов, подлежащий индексации. Поток 400 выполнения операций может вернуться к блоку 402, чтобы индексировать документ.
Тем не менее, если в блоке 408 определено, что больше не имеется документов, подлежащих индексации, поток 400 выполнения операций может перейти к блоку 412, в котором процесс индексации завершается.
Несмотря на то, что поток 400 выполнения операций иллюстрирован и описан последовательно в определенной очередности, в других вариантах осуществления операции, описанные в блоках, могут быть выполнены в разных последовательностях, в разное время и/или параллельно. Дополнительно в некоторых вариантах осуществления одна или несколько операций, описанных в блоках, могут быть выделены в другие блоки, пропущены или объединены.
Иллюстративная операционная среда
Фиг.5 иллюстрирует общее вычислительное окружение 500, которое может быть использовано, чтобы реализовать описанные здесь технологии. Операционное окружение 500 является только одним примером вычислительного окружения и не предназначено для того, чтобы предлагать какие-либо ограничения на область использования или функциональность архитектур компьютера или сети. Вычислительная среда 500 не должна интерпретироваться как обладающая какой-либо зависимостью или требованием, относящимися к любому одному или комбинации компонентов, проиллюстрированных в примерной вычислительной среде 500.
Вычислительная среда 500 включает в себя вычислительное устройство общего назначения в виде компьютера 502. Компоненты компьютера могут содержать, но не ограничиваться этим, один или несколько процессоров или процессорных блоков 504, системную память 506 и системную шину 508, которая соединяет различные компоненты системы, включая процессор 504, с системной памятью 506.
Системная шина 508 представляет собой одну или несколько любых из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и процессор или локальную шину, использующих любую из многообразия шинных архитектур. В качестве примера такие архитектуры могут включать в себя шину Архитектуры промышленного стандарта (ISA), шину Микроканальной архитектуры (MSA), шину Расширенной архитектуры промышленного стандарта (EISA), локальную шину Ассоциации по стандартам в области видеоэлектроники (VESA), шину Межсоединения периферийных компонентов (PCI), известную также как шина второго уровня, Универсальную последовательную шину (USB), шину формата Secure Digital (SD) или шину IEEE 1394, в т.ч. FireWire.
Компьютер 502 может включать в себя множество читаемых компьютером носителей. Таким носителем может быть любой имеющийся в распоряжении носитель, доступ к которому может быть осуществлен компьютером 502, и включает в себя и энергозависимые и энергонезависимые носители, съемные и несъемные носители.
Системная память 506 включает в себя читаемый компьютером носитель в виде энергозависимой памяти, такой как оперативное запоминающее устройство (ОЗУ) 510; и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 512 или флэш-память. Базовая система 514 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают передавать информацию между элементами в пределах компьютера 502, к примеру, во время запуска, обычно хранится в ПЗУ 512 или флэш-памяти. ОЗУ 510 обычно содержит модули данных и/или программ, которые доступны непосредственно и/или, собственно, являются приводимыми в действие процессорным блоком 504.
Компьютер 502 может также включать в себя съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных. В качестве примера Фигура 5 иллюстрирует накопитель 516 на жестком диске для считывания с или записи на несъемные энергонезависимые магнитные носители (не показано), привод 518 магнитного диска для считывания с или записи на съемный энергонезависимый магнитный диск 520 (например, «флоппи диск») и привод 522 оптического диска для считывания с или записи на съемный энергонезависимый оптический диск 524, такой как CD-ROM, DVD-ROM или другие оптические носители. Накопитель 516 на жестком диске, накопитель 518 на магнитном диске и накопитель 522 на оптическом диске соединены каждый с системной шиной 508 одним или несколькими интерфейсами 525 носителей данных. Альтернативно, накопитель 516 на жестком диске, накопитель 518 на магнитном диске и накопитель 522 на оптическом диске могут быть соединены с системной шиной 508 одним или несколькими интерфейсами (не показано).
Дисководы и их ассоциированные читаемые компьютером носители предусматривают энергонезависимое сохранение читаемых компьютером инструкций, структур данных, программных модулей и других данных для компьютера 502. Несмотря на то, что пример иллюстрирует жесткий диск 516, съемный магнитный диск 520 и съемный оптический диск 524, следует принимать во внимание, что другие типы читаемых компьютером носителей, которые могут хранить данные, которые доступны компьютеру, таких как магнитные кассеты или другие магнитные устройства хранения, карты флэш-памяти, CD-ROM, многоцелевой компакт-диск (DVD) или другие оптические носители, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ) и тому подобное, также могут быть использованы, чтобы реализовать пример вычислительной системы и окружения.
Любое количество программных модулей может быть сохранено на жестком диске 516, магнитном диске 520, оптическом диске 524, ПЗУ 512 и/или ОЗУ 510, включающие в себя в качестве примера операционную систему 526 (которая в некоторых вариантах осуществления содержит низко- и высокоприоритетную файловые системы и системы индексации описанные выше), одно или несколько прикладных программ 528, другие программные модули 530 и программные данные 532. Каждая из таких операционных систем 526, одна или несколько прикладных программ 528, другие программные модули 530 и программные данные 532 (или некая их комбинация) может осуществлять все или часть резидентных компонентов, которые поддерживают распределенную файловую систему.
Пользователь может вводить команды и информацию в компьютер 502 через устройства ввода, такие как клавиатура 534, и указующее устройство (например, «мышь»). Другие устройства 538 ввода (не показаны специально) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, последовательный порт, сканер и/или тому подобное. Эти и другие устройства ввода подключены к процессорному блоку 504 через интерфейс 540 ввода/вывода, который соединен с системной шиной 508, однако могут быть подключены по другим интерфейсам и структурам шин, таким как параллельный порт, игровой порт или универсальная последовательная шина (USB).
Монитор 524 или другой тип устройства отображения также может быть подключен к системной шине 508 по интерфейсу, такому как видео адаптер 544. А дополнение к монитору 542, другие периферийные устройства вывода могут включать в себя компоненты, такие как акустические колонки (не показано) и принтер 546, которые могут быть подключены к компьютеру 502 по интерфейсам 540 ввода/вывода.
Компьютер 502 может работать в сетевой среде, используя логические связи с одним или несколькими удаленными компьютерами, такими как удаленное вычислительное устройство 548. В качестве примера удаленным вычислительным устройством 548 может быть ПК, портативный компьютер, сервер, маршрутизатор, сетевой компьютер, равнозначное устройство или другой общий сетевой узел и т.п. Удаленное вычислительное устройство 548 проиллюстрировано как портативный компьютер, который может включать в себя многие или все элементы и признаки, описанные здесь относительно компьютера 502. Альтернативно, компьютер 502 может работать также в несетевой среде.
Логические связи между компьютером 502 и удаленным компьютером 548 определяются как локальная сеть (LAN) 550 и общая глобальная сеть (WAN) 552. Такие сетевые среды типичны для офисов, корпоративных компьютерный сетей, интранета и Интернета.
При исполнении в сетевой среде LAN компьютер 502 подключен к локальной сети 550 по сетевому интерфейсу или адаптеру 554. При реализации в сетевой среде WAN компьютер обычно включает в себя модем 556 или другие средства для установления соединения через глобальную сеть 552. Модем 556, который может быть внутренним или внешним для компьютера 502, может быть подключен к системной шине 508 по интерфейсам 540 ввода/вывода или другим соответствующим устройствам. Следует признать, что иллюстрированные сетевые подключения приведены для примера и что могут быть использованы другие средства установления, как минимум, одной линии связи между компьютерами 502 и 548.
В сетевой среде, такой как проиллюстрированная с вычислительной средой 500, программные модули, изображенные относительно компьютера 502, или их части, могут быть сохранены в удаленном запоминающем устройстве. В качестве примера удаленная прикладная программа 558 располагается на запоминающем устройстве удаленного компьютера 548. В целях иллюстрации, приложения или программы и другие исполняемые программные компоненты, такие как операционная система, проиллюстрированы здесь как дискретные блоки, хотя и признано, что такие программы и компоненты находятся в разное время в разных компонентах хранения вычислительного устройства 502 и выполняются, как минимум, одним процессором данных компьютера.
Различные модули и технические приемы могут быть описаны здесь в общем контексте выполняемых компьютером инструкций, таких как программные модули, выполняемые одним или несколькими компьютерами или другими устройствами. Как правило, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и так далее для выполнения конкретных задач или реализуют конкретные абстрактные типы данных. Обычно, функциональность программных модулей может быть объединена или распространена, как требуется в различных вариантах осуществления.
Реализация этих модулей и способов может быть сохранена или передана через некоторые формы читаемых компьютером носителей. Читаемыми компьютером носителями могут быть любые имеющиеся в распоряжении носители, к которым может быть осуществлен доступ через компьютер. В качестве примера, но не ограничения, читаемые компьютером носители могут содержать «компьютерные запоминающие носители» и «среду передачи данных».
«Компьютерные запоминающие носители» включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные по любому способу или технологии для хранения информации, такой как читаемые компьютером инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие носители включают в себя, но не в качестве ограничения, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другую технологию памяти, CD-ROM, цифровой многофункциональный диск (DVD) или другие оптические носители, магнитные кассеты, магнитную ленту, магнитные дисковые носители или другие магнитные носители либо любые другие носители, которые могут быть использованы для хранения требуемой информации и к которым может быть осуществлен доступ компьютером.
«Среда передачи данных» обычно воплощает читаемые компьютером инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая волна или другой транспортный механизм. «Среда передачи данных» также включает в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет один или несколько параметров, установленных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве неограничивающего примера только среда передачи данных включает в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение, и беспроводную среду, такую как акустическая, РЧ (радиочастотная), инфракрасная и другая беспроводная среда. Комбинации любых из вышеприведенных также включены в область читаемых компьютером носителей.
Ссылка была сделана во всей этой спецификации на «один вариант осуществления», «вариант осуществления» или «примерный вариант осуществления», означая, что конкретно описанный признак, структура или параметр содержатся по меньшей мере в одном варианте осуществления настоящего изобретения. Таким образом, использование таких фраз может указывать на более чем один вариант осуществления. Более того, описанные признаки, структуры или параметры могут комбинироваться любым подходящим образом в одном или нескольких вариантах осуществления.
Специалист в соответствующей области техники может признать, тем не менее, что изобретение может быть практически использовано без одного или нескольких специальных деталей или с другими способами, ресурсами, материалами и т.д. В других случаях хорошо известные структуры, ресурсы или операции не показаны или описаны подробно только, чтобы избежать неясных аспектов изобретения.
Хотя примерные варианты осуществления и приложения настоящего изобретения были проиллюстрированы и описаны, следует понимать, что изобретение не ограничено конкретной конфигурацией и ресурсами, описанными выше. Различные модификации, изменения и вариации очевидные для специалиста в данной области техники, могут быть сделаны в расположении, работе и деталях способов и систем настоящего изобретения, раскрытого здесь, не отклоняясь от области заявленного изобретения.
Claims (20)
1. Реализуемый на компьютере способ передачи запросов ввода/вывода (I/O) в файловую систему, содержащий этапы, на которых:
ожидают запроса ввода/вывода;
определяют запрос ввода/вывода как низкоприоритетный запрос ввода/вывода после определения того, что источником запроса ввода/вывода является индексирующая подсистема, в рамках процесса создания индекса, используемого для осуществления пословного поиска набора документов;
определяют запрос ввода/вывода как высокоприоритетный запрос ввода/вывода после определения того, что источником запроса ввода/вывода является подсистема запросов, для поиска индекса, созданного индексирующей подсистемой;
сохраняют запрос ввода/вывода в очереди низкоприоритетных запросов ввода/вывода, когда запрос ввода/вывода определен как низкоприоритетный запрос ввода/вывода;
сохраняют запрос ввода/вывода в очереди высокоприоритетных запросов ввода/вывода, когда запрос ввода/вывода определен как высокоприоритетный запрос ввода/вывода;
обрабатывают каждый запрос ввода/вывода, который содержится в очереди высокоприоритетных запросов ввода/вывода, перед обработкой каждого запроса ввода/вывода в очереди низкоприоритетных запросов ввода/вывода, так что ресурсы обработки центрального процессорного устройства (ЦПУ) сначала назначаются запросам ввода/вывода, хранящимся в очереди высокоприоритетных запросов ввода/вывода, а затем низкоприоритетным запросам ввода/вывода, хранящимся в очереди низкоприоритетных запросов ввода/вывода.
ожидают запроса ввода/вывода;
определяют запрос ввода/вывода как низкоприоритетный запрос ввода/вывода после определения того, что источником запроса ввода/вывода является индексирующая подсистема, в рамках процесса создания индекса, используемого для осуществления пословного поиска набора документов;
определяют запрос ввода/вывода как высокоприоритетный запрос ввода/вывода после определения того, что источником запроса ввода/вывода является подсистема запросов, для поиска индекса, созданного индексирующей подсистемой;
сохраняют запрос ввода/вывода в очереди низкоприоритетных запросов ввода/вывода, когда запрос ввода/вывода определен как низкоприоритетный запрос ввода/вывода;
сохраняют запрос ввода/вывода в очереди высокоприоритетных запросов ввода/вывода, когда запрос ввода/вывода определен как высокоприоритетный запрос ввода/вывода;
обрабатывают каждый запрос ввода/вывода, который содержится в очереди высокоприоритетных запросов ввода/вывода, перед обработкой каждого запроса ввода/вывода в очереди низкоприоритетных запросов ввода/вывода, так что ресурсы обработки центрального процессорного устройства (ЦПУ) сначала назначаются запросам ввода/вывода, хранящимся в очереди высокоприоритетных запросов ввода/вывода, а затем низкоприоритетным запросам ввода/вывода, хранящимся в очереди низкоприоритетных запросов ввода/вывода.
2. Способ по п.1, дополнительно содержащий определение запроса ввода/вывода как высокоприоритетного запроса ввода/вывода в ответ на определение того, что запрос ввода/вывода был сгенерирован компонентом, отличным от индексирующей подсистемы.
3. Способ по п.1, в котором запрос ввода/вывода, генерируемый в ответ на запрос поиска, генерируется подсистемой запросов и передается с высоким приоритетом.
4. Способ по п.1, в котором запрос ввода/вывода, генерируемый в ответ на считывание документа, подлежащего индексации, генерируется индексирующей подсистемой.
5. Способ по п.1, в котором запрос ввода/вывода, генерируемый в ответ на запись данных в индекс, генерируется индексирующей подсистемой.
6. Способ по п.1, в котором приоритеты могут быть назначены запросам ввода/вывода на потоковой основе.
7. Способ по п.1, дополнительно содержащий назначение задач центрального процессорного устройства (ЦПУ), генерируемых индексирующей подсистемой как низкоприоритетных задач ЦПУ.
8. Машиночитаемый носитель, содержащий инструкции, которые при выполнении их компьютером, реализуют способ по п.1.
9. Реализуемый на компьютере способ индексации документа, содержащий этапы, на которых:
принимают запрос ввода/вывода;
определяют запрос ввода/вывода как низкоприоритетный запрос ввода/вывода, когда источником запроса ввода/вывода является индексирующая подсистема, в рамках процесса создания индекса, используемого для выполнения пословного поиска набора документов;
определяют запрос ввода/вывода как высокоприоритетный запрос ввода/вывода, когда источником запроса ввода/вывода является подсистема запросов, для поиска индекса, созданного индексирующей подсистемой; и
когда источником запроса ввода/вывода является индексирующая подсистема, как часть процесса создания индекса, используемого для выполнения пословного поиска документа:
считывают содержимое документа из файловой системы, используя только низкоприоритетные запросы ввода/вывода (I/O) с точки зрения обработки ЦПУ, чтобы ресурсы обработки ЦПУ сначала назначались всем запросам, использующим больший объем ресурсов обработки ЦПУ, а затем запросам с более низким приоритетом с точки зрения обработки ЦПУ;
извлекают слова из содержимого; и
сохраняют извлеченные слова в индексе, используя только низкоприоритетные запросы ввода/вывода.
принимают запрос ввода/вывода;
определяют запрос ввода/вывода как низкоприоритетный запрос ввода/вывода, когда источником запроса ввода/вывода является индексирующая подсистема, в рамках процесса создания индекса, используемого для выполнения пословного поиска набора документов;
определяют запрос ввода/вывода как высокоприоритетный запрос ввода/вывода, когда источником запроса ввода/вывода является подсистема запросов, для поиска индекса, созданного индексирующей подсистемой; и
когда источником запроса ввода/вывода является индексирующая подсистема, как часть процесса создания индекса, используемого для выполнения пословного поиска документа:
считывают содержимое документа из файловой системы, используя только низкоприоритетные запросы ввода/вывода (I/O) с точки зрения обработки ЦПУ, чтобы ресурсы обработки ЦПУ сначала назначались всем запросам, использующим больший объем ресурсов обработки ЦПУ, а затем запросам с более низким приоритетом с точки зрения обработки ЦПУ;
извлекают слова из содержимого; и
сохраняют извлеченные слова в индексе, используя только низкоприоритетные запросы ввода/вывода.
10. Способ по п.9, дополнительно содержащий преобразование содержимого в открытый текст.
11. Способ по п.9, в котором извлечение выполняется с использованием процесса разбивки слов.
12. Способ по п.9, в котором низкоприоритетные запросы ввода/вывода связаны с одной или более низкоприоритетными задачами ЦПУ.
13. Способ по п.9, в котором к индексу осуществляют выборочный доступ с использованием одного или более высокоприоритетных запросов ввода/вывода в ответ на запрос, генерируемый пользователем.
14. Способ по п.13, в котором один или более запросов ввода/вывода с низким приоритетом с точки зрения обработки ЦПУ и один или более запросов ввода/вывода, связанных с запросом, генерируются различными потоками одного процесса.
15. Машиночитаемый носитель, содержащий инструкции, которые при выполнении их компьютером реализуют способ по п.9.
16. Система для создания индекса, используемого в поиске одного или более документов по одному или более выбранным словам, содержащая:
процессор и машиночитаемый носитель;
файловую систему, хранящуюся на машиночитаемом носителе, которая поддерживает, по меньшей мере, запросы ввода/вывода с низким и высоким приоритетами с точки зрения обработки ЦПУ;
запоминающее устройство, соединенное с процессором, для хранения одного или более документов, подлежащих индексации, и индекса, причем запоминающее устройство доступно через файловую систему; и
процесс индексации, выполняемый процессором для:
получения запроса ввода/вывода;
определения запроса ввода/вывода как низкоприоритетного запроса ввода/вывода, когда источником запроса ввода/вывода является индексирующая подсистема, в рамках процесса создания индекса, используемого для выполнения пословного поиска набора документов;
определения запроса ввода/вывода как высокоприоритетного запроса, когда источником запроса ввода/вывода является подсистема запросов, для поиска индекса, созданного индексирующей подсистемой;
сохранения запроса ввода/вывода в очереди с низкоприоритетными запросами ввода/вывода, когда запрос ввода/вывода определяется как низкоприоритетный запрос ввода/вывода;
сохранения запроса ввода/вывода в очереди с высокоприоритетными запросами ввода/вывода, когда запрос ввода/вывода определяется как высокоприоритетный запрос ввода/вывода;
обработки каждого запроса ввода/вывода, который содержится в очереди с высокоприоритетными запросами ввода/вывода, до обработки каждого запроса ввода/вывода в очереди с низкоприоритетными запросами; и
индексирующую подсистему, которая, в качестве части процесса создания индекса, считывает один или более документов из запоминающего устройства и сохраняет данные в индексе таким образом, чтобы ресурсы обработки ЦПУ сначала назначались запросам, использующим большой объем ресурсов обработки ЦПУ, а затем запросам с меньшим приоритетом с точки зрения обработки ЦПУ; причем процесс индексации генерирует только низкоприоритетные запросы для считывания одного или более документов из запоминающего устройства и генерирует только низкоприоритетные запросы для хранения данных в индексе.
процессор и машиночитаемый носитель;
файловую систему, хранящуюся на машиночитаемом носителе, которая поддерживает, по меньшей мере, запросы ввода/вывода с низким и высоким приоритетами с точки зрения обработки ЦПУ;
запоминающее устройство, соединенное с процессором, для хранения одного или более документов, подлежащих индексации, и индекса, причем запоминающее устройство доступно через файловую систему; и
процесс индексации, выполняемый процессором для:
получения запроса ввода/вывода;
определения запроса ввода/вывода как низкоприоритетного запроса ввода/вывода, когда источником запроса ввода/вывода является индексирующая подсистема, в рамках процесса создания индекса, используемого для выполнения пословного поиска набора документов;
определения запроса ввода/вывода как высокоприоритетного запроса, когда источником запроса ввода/вывода является подсистема запросов, для поиска индекса, созданного индексирующей подсистемой;
сохранения запроса ввода/вывода в очереди с низкоприоритетными запросами ввода/вывода, когда запрос ввода/вывода определяется как низкоприоритетный запрос ввода/вывода;
сохранения запроса ввода/вывода в очереди с высокоприоритетными запросами ввода/вывода, когда запрос ввода/вывода определяется как высокоприоритетный запрос ввода/вывода;
обработки каждого запроса ввода/вывода, который содержится в очереди с высокоприоритетными запросами ввода/вывода, до обработки каждого запроса ввода/вывода в очереди с низкоприоритетными запросами; и
индексирующую подсистему, которая, в качестве части процесса создания индекса, считывает один или более документов из запоминающего устройства и сохраняет данные в индексе таким образом, чтобы ресурсы обработки ЦПУ сначала назначались запросам, использующим большой объем ресурсов обработки ЦПУ, а затем запросам с меньшим приоритетом с точки зрения обработки ЦПУ; причем процесс индексации генерирует только низкоприоритетные запросы для считывания одного или более документов из запоминающего устройства и генерирует только низкоприоритетные запросы для хранения данных в индексе.
17. Система по п.16, в которой процесс индексации также отправляет один или более высокоприоритетных запросов ввода/вывода в файловую систему в ответ на запрос поиска, который осуществляет доступ к индексу.
18. Систему по п.16, в которой низкоприоритетные запросы ввода/вывода связаны с одной или более низкоприоритетными задачами ЦПУ.
19. Система по п.16, в которой один или более низкоприоритетных запросов ввода/вывода и один или более запросов ввода/вывода, связанных с запросом, генерируются различными потоками одного процесса.
20. Машиночитаемый носитель, содержащий инструкции, которые при выполнении их компьютером реализуют систему по п.16.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/167,826 | 2005-06-27 | ||
US11/167,826 US20060294049A1 (en) | 2005-06-27 | 2005-06-27 | Back-off mechanism for search |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2007147645A RU2007147645A (ru) | 2009-06-27 |
RU2412477C2 true RU2412477C2 (ru) | 2011-02-20 |
Family
ID=37568787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2007147645/08A RU2412477C2 (ru) | 2005-06-27 | 2005-08-01 | Механизм отложенного поиска |
Country Status (12)
Country | Link |
---|---|
US (1) | US20060294049A1 (ru) |
EP (1) | EP1896992A4 (ru) |
JP (1) | JP2008547106A (ru) |
KR (1) | KR20080024156A (ru) |
CN (1) | CN101443762A (ru) |
AU (1) | AU2005333693A1 (ru) |
BR (1) | BRPI0520200A2 (ru) |
CA (1) | CA2608276A1 (ru) |
MX (1) | MX2007014899A (ru) |
NO (1) | NO20075745L (ru) |
RU (1) | RU2412477C2 (ru) |
WO (1) | WO2007001331A2 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2459242C1 (ru) * | 2011-08-09 | 2012-08-20 | Олег Александрович Серебренников | Способ создания и использования рекурсивного индекса поисковых машин |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510283B2 (en) | 2006-07-31 | 2013-08-13 | Ricoh Co., Ltd. | Automatic adaption of an image recognition system to image capture devices |
US7702673B2 (en) | 2004-10-01 | 2010-04-20 | Ricoh Co., Ltd. | System and methods for creation and use of a mixed media environment |
US8332401B2 (en) | 2004-10-01 | 2012-12-11 | Ricoh Co., Ltd | Method and system for position-based image matching in a mixed media environment |
US8989431B1 (en) | 2007-07-11 | 2015-03-24 | Ricoh Co., Ltd. | Ad hoc paper-based networking with mixed media reality |
US8335789B2 (en) | 2004-10-01 | 2012-12-18 | Ricoh Co., Ltd. | Method and system for document fingerprint matching in a mixed media environment |
US9405751B2 (en) | 2005-08-23 | 2016-08-02 | Ricoh Co., Ltd. | Database for mixed media document system |
US9384619B2 (en) | 2006-07-31 | 2016-07-05 | Ricoh Co., Ltd. | Searching media content for objects specified using identifiers |
US8600989B2 (en) | 2004-10-01 | 2013-12-03 | Ricoh Co., Ltd. | Method and system for image matching in a mixed media environment |
US8005831B2 (en) | 2005-08-23 | 2011-08-23 | Ricoh Co., Ltd. | System and methods for creation and use of a mixed media environment with geographic location information |
US8086038B2 (en) | 2007-07-11 | 2011-12-27 | Ricoh Co., Ltd. | Invisible junction features for patch recognition |
US8156116B2 (en) | 2006-07-31 | 2012-04-10 | Ricoh Co., Ltd | Dynamic presentation of targeted information in a mixed media reality recognition system |
US9171202B2 (en) | 2005-08-23 | 2015-10-27 | Ricoh Co., Ltd. | Data organization and access for mixed media document system |
US8949287B2 (en) | 2005-08-23 | 2015-02-03 | Ricoh Co., Ltd. | Embedding hot spots in imaged documents |
US8176054B2 (en) | 2007-07-12 | 2012-05-08 | Ricoh Co. Ltd | Retrieving electronic documents by converting them to synthetic text |
US8521737B2 (en) | 2004-10-01 | 2013-08-27 | Ricoh Co., Ltd. | Method and system for multi-tier image matching in a mixed media environment |
US8856108B2 (en) | 2006-07-31 | 2014-10-07 | Ricoh Co., Ltd. | Combining results of image retrieval processes |
US8276088B2 (en) | 2007-07-11 | 2012-09-25 | Ricoh Co., Ltd. | User interface for three-dimensional navigation |
US8385589B2 (en) | 2008-05-15 | 2013-02-26 | Berna Erol | Web-based content detection in images, extraction and recognition |
US8195659B2 (en) | 2005-08-23 | 2012-06-05 | Ricoh Co. Ltd. | Integration and use of mixed media documents |
US7812986B2 (en) * | 2005-08-23 | 2010-10-12 | Ricoh Co. Ltd. | System and methods for use of voice mail and email in a mixed media environment |
US9530050B1 (en) | 2007-07-11 | 2016-12-27 | Ricoh Co., Ltd. | Document annotation sharing |
US8868555B2 (en) | 2006-07-31 | 2014-10-21 | Ricoh Co., Ltd. | Computation of a recongnizability score (quality predictor) for image retrieval |
US9373029B2 (en) | 2007-07-11 | 2016-06-21 | Ricoh Co., Ltd. | Invisible junction feature recognition for document security or annotation |
US8369655B2 (en) * | 2006-07-31 | 2013-02-05 | Ricoh Co., Ltd. | Mixed media reality recognition using multiple specialized indexes |
US8144921B2 (en) | 2007-07-11 | 2012-03-27 | Ricoh Co., Ltd. | Information retrieval using invisible junctions and geometric constraints |
US8838591B2 (en) | 2005-08-23 | 2014-09-16 | Ricoh Co., Ltd. | Embedding hot spots in electronic documents |
US8184155B2 (en) | 2007-07-11 | 2012-05-22 | Ricoh Co. Ltd. | Recognition and tracking using invisible junctions |
US7920759B2 (en) | 2005-08-23 | 2011-04-05 | Ricoh Co. Ltd. | Triggering applications for distributed action execution and use of mixed media recognition as a control input |
US8156427B2 (en) | 2005-08-23 | 2012-04-10 | Ricoh Co. Ltd. | User interface for mixed media reality |
US7991778B2 (en) | 2005-08-23 | 2011-08-02 | Ricoh Co., Ltd. | Triggering actions with captured input in a mixed media environment |
US7970171B2 (en) | 2007-01-18 | 2011-06-28 | Ricoh Co., Ltd. | Synthetic image and video generation from ground truth data |
US8825682B2 (en) | 2006-07-31 | 2014-09-02 | Ricoh Co., Ltd. | Architecture for mixed media reality retrieval of locations and registration of images |
US9176984B2 (en) | 2006-07-31 | 2015-11-03 | Ricoh Co., Ltd | Mixed media reality retrieval of differentially-weighted links |
US9020966B2 (en) | 2006-07-31 | 2015-04-28 | Ricoh Co., Ltd. | Client device for interacting with a mixed media reality recognition system |
US9063952B2 (en) | 2006-07-31 | 2015-06-23 | Ricoh Co., Ltd. | Mixed media reality recognition with image tracking |
US8073263B2 (en) | 2006-07-31 | 2011-12-06 | Ricoh Co., Ltd. | Multi-classifier selection and monitoring for MMR-based image recognition |
US8676810B2 (en) * | 2006-07-31 | 2014-03-18 | Ricoh Co., Ltd. | Multiple index mixed media reality recognition using unequal priority indexes |
US8489987B2 (en) | 2006-07-31 | 2013-07-16 | Ricoh Co., Ltd. | Monitoring and analyzing creation and usage of visual content using image and hotspot interaction |
US8201076B2 (en) | 2006-07-31 | 2012-06-12 | Ricoh Co., Ltd. | Capturing symbolic information from documents upon printing |
US8990215B1 (en) * | 2007-05-21 | 2015-03-24 | Amazon Technologies, Inc. | Obtaining and verifying search indices |
US8145806B2 (en) * | 2008-09-19 | 2012-03-27 | Oracle International Corporation | Storage-side storage request management |
US8385660B2 (en) | 2009-06-24 | 2013-02-26 | Ricoh Co., Ltd. | Mixed media reality indexing and retrieval for repeated content |
US8326869B2 (en) * | 2010-09-23 | 2012-12-04 | Accenture Global Services Limited | Analysis of object structures such as benefits and provider contracts |
US9058331B2 (en) | 2011-07-27 | 2015-06-16 | Ricoh Co., Ltd. | Generating a conversation in a social network based on visual search results |
US9189050B1 (en) * | 2011-08-19 | 2015-11-17 | Cadence Design Systems, Inc. | Method and apparatus for memory power reduction |
US9558248B2 (en) * | 2013-01-16 | 2017-01-31 | Google Inc. | Unified searchable storage for resource-constrained and other devices |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US68627A (en) * | 1867-09-10 | Richasd hoffmann | ||
US3905023A (en) * | 1973-08-15 | 1975-09-09 | Burroughs Corp | Large scale multi-level information processing system employing improved failsaft techniques |
JPH02273843A (ja) * | 1989-04-14 | 1990-11-08 | Nec Corp | スワッピング装置 |
US5396635A (en) * | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
US5544352A (en) * | 1993-06-14 | 1996-08-06 | Libertech, Inc. | Method and apparatus for indexing, searching and displaying data |
US6185629B1 (en) * | 1994-03-08 | 2001-02-06 | Texas Instruments Incorporated | Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time |
US5897660A (en) * | 1995-04-07 | 1999-04-27 | Intel Corporation | Method for managing free physical pages that reduces trashing to improve system performance |
US6415319B1 (en) * | 1997-02-07 | 2002-07-02 | Sun Microsystems, Inc. | Intelligent network browser using incremental conceptual indexer |
US6658447B2 (en) * | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
US6879266B1 (en) * | 1997-08-08 | 2005-04-12 | Quickshift, Inc. | Memory module including scalable embedded parallel data compression and decompression engines |
FR2770952B1 (fr) * | 1997-11-12 | 2000-01-21 | Adl Systeme Sa | Dispositif de tele-ecriture |
US6324654B1 (en) * | 1998-03-30 | 2001-11-27 | Legato Systems, Inc. | Computer network remote data mirroring system |
JP2000047881A (ja) * | 1998-07-28 | 2000-02-18 | Hitachi Ltd | リアルタイムシステム |
US6425057B1 (en) * | 1998-08-27 | 2002-07-23 | Hewlett-Packard Company | Caching protocol method and system based on request frequency and relative storage duration |
US6378043B1 (en) * | 1998-12-31 | 2002-04-23 | Oracle Corporation | Reward based cache management |
US6237065B1 (en) * | 1999-05-14 | 2001-05-22 | Hewlett-Packard Company | Preemptive replacement strategy for a caching dynamic translator |
US6317806B1 (en) * | 1999-05-20 | 2001-11-13 | International Business Machines Corporation | Static queue and index queue for storing values identifying static queue locations |
DE60005051T2 (de) * | 1999-11-29 | 2004-07-08 | Glaxo Group Ltd., Greenford | Auf programmfäden basiertes verfahren und systeme zur verwendung der freien verarbeitungsleistung eines oder mehrerer vernetzten rechner um komplizierte wissenschaftliche probleme zu lösen |
US6366996B1 (en) * | 2000-01-24 | 2002-04-02 | Pmc-Sierra, Inc. | Page memory management in non time critical data buffering applications |
US20020052913A1 (en) * | 2000-09-06 | 2002-05-02 | Teruhiro Yamada | User support apparatus and system using agents |
US6418510B1 (en) * | 2000-09-14 | 2002-07-09 | International Business Machines Corporation | Cooperative cache and rotational positioning optimization (RPO) scheme for a direct access storage device (DASD) |
US6546472B2 (en) * | 2000-12-29 | 2003-04-08 | Hewlett-Packard Development Company, L.P. | Fast suspend to disk |
US6651141B2 (en) * | 2000-12-29 | 2003-11-18 | Intel Corporation | System and method for populating cache servers with popular media contents |
US6877081B2 (en) * | 2001-02-13 | 2005-04-05 | International Business Machines Corporation | System and method for managing memory compression transparent to an operating system |
GB2374951B (en) * | 2001-04-24 | 2005-06-15 | Discreet Logic Inc | Asynchronous database updates |
JP2002342037A (ja) * | 2001-05-22 | 2002-11-29 | Fujitsu Ltd | ディスク装置 |
KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
JP2003005987A (ja) * | 2001-06-19 | 2003-01-10 | Hitachi Ltd | エミュレーション装置 |
US6922765B2 (en) * | 2001-06-21 | 2005-07-26 | International Business Machines Corporation | Method of allocating physical memory space having pinned and non-pinned regions |
US6742097B2 (en) * | 2001-07-30 | 2004-05-25 | Rambus Inc. | Consolidation of allocated memory to reduce power consumption |
US6535238B1 (en) * | 2001-10-23 | 2003-03-18 | International Business Machines Corporation | Method and apparatus for automatically scaling processor resource usage during video conferencing |
US20030110357A1 (en) * | 2001-11-14 | 2003-06-12 | Nguyen Phillip V. | Weight based disk cache replacement method |
NO316480B1 (no) * | 2001-11-15 | 2004-01-26 | Forinnova As | Fremgangsmåte og system for tekstuell granskning og oppdagelse |
US20040205046A1 (en) * | 2001-11-29 | 2004-10-14 | International Business Machines Corporation | Indexing and retrieval of textual collections on PDAS |
US20030171926A1 (en) * | 2002-03-07 | 2003-09-11 | Narasimha Suresh | System for information storage, retrieval and voice based content search and methods thereof |
US7448036B2 (en) * | 2002-05-02 | 2008-11-04 | International Business Machines Corporation | System and method for thread scheduling with weak preemption policy |
GB0215118D0 (en) * | 2002-06-28 | 2002-08-07 | Hewlett Packard Co | Dynamic resource allocation in a multimodal system |
US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
US7272732B2 (en) * | 2003-06-30 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Controlling power consumption of at least one computer system |
US20050028160A1 (en) * | 2003-08-01 | 2005-02-03 | Honeywell International Inc. | Adaptive scheduler for anytime tasks |
WO2005020103A1 (en) * | 2003-08-18 | 2005-03-03 | Sap Aktiengesellschaft | Generic search engine framework |
US7206866B2 (en) * | 2003-08-20 | 2007-04-17 | Microsoft Corporation | Continuous media priority aware storage scheduler |
US20050081210A1 (en) * | 2003-09-25 | 2005-04-14 | International Business Machines Corporation | Dynamic adjustment of system resource allocation during query execution in a database management system |
US7945914B2 (en) * | 2003-12-10 | 2011-05-17 | X1 Technologies, Inc. | Methods and systems for performing operations in response to detecting a computer idle condition |
US8538997B2 (en) * | 2004-06-25 | 2013-09-17 | Apple Inc. | Methods and systems for managing data |
US7672928B2 (en) * | 2004-09-30 | 2010-03-02 | Microsoft Corporation | Query forced indexing |
US8881233B2 (en) * | 2005-05-23 | 2014-11-04 | Microsoft Corporation | Resource management via periodic distributed time |
US20070067455A1 (en) * | 2005-08-08 | 2007-03-22 | Microsoft Corporation | Dynamically adjusting resources |
-
2005
- 2005-06-27 US US11/167,826 patent/US20060294049A1/en not_active Abandoned
- 2005-08-01 JP JP2008518114A patent/JP2008547106A/ja active Pending
- 2005-08-01 EP EP05777258A patent/EP1896992A4/en not_active Withdrawn
- 2005-08-01 CA CA002608276A patent/CA2608276A1/en not_active Abandoned
- 2005-08-01 CN CNA2005800499841A patent/CN101443762A/zh active Pending
- 2005-08-01 RU RU2007147645/08A patent/RU2412477C2/ru not_active IP Right Cessation
- 2005-08-01 AU AU2005333693A patent/AU2005333693A1/en not_active Abandoned
- 2005-08-01 KR KR1020077030591A patent/KR20080024156A/ko not_active Application Discontinuation
- 2005-08-01 MX MX2007014899A patent/MX2007014899A/es active IP Right Grant
- 2005-08-01 WO PCT/US2005/027202 patent/WO2007001331A2/en active Application Filing
- 2005-08-01 BR BRPI0520200-0A patent/BRPI0520200A2/pt not_active IP Right Cessation
-
2007
- 2007-11-09 NO NO20075745A patent/NO20075745L/no not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2459242C1 (ru) * | 2011-08-09 | 2012-08-20 | Олег Александрович Серебренников | Способ создания и использования рекурсивного индекса поисковых машин |
Also Published As
Publication number | Publication date |
---|---|
MX2007014899A (es) | 2008-01-28 |
RU2007147645A (ru) | 2009-06-27 |
EP1896992A2 (en) | 2008-03-12 |
JP2008547106A (ja) | 2008-12-25 |
AU2005333693A1 (en) | 2007-01-04 |
CA2608276A1 (en) | 2007-01-04 |
WO2007001331A3 (en) | 2009-04-16 |
KR20080024156A (ko) | 2008-03-17 |
CN101443762A (zh) | 2009-05-27 |
NO20075745L (no) | 2008-01-25 |
BRPI0520200A2 (pt) | 2009-04-22 |
US20060294049A1 (en) | 2006-12-28 |
WO2007001331A2 (en) | 2007-01-04 |
EP1896992A4 (en) | 2012-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2412477C2 (ru) | Механизм отложенного поиска | |
US10826980B2 (en) | Command process load balancing system | |
KR100705411B1 (ko) | 로컬 컴퓨터 검색 시스템 및 이를 이용한 로컬 컴퓨터 검색방법 | |
RU2571512C2 (ru) | Преобразование контента на компьютере | |
US8108403B2 (en) | User engagement during large file uploads | |
JP2013500514A (ja) | ダイナミックメディアコンテンツプレビュー | |
US11775575B2 (en) | Systems and methods of performing searches within a text input application | |
WO2016000507A1 (zh) | 省流量模式搜索服务的方法、服务器、客户端和系统 | |
US20200319797A1 (en) | System and method for file processing from a block device | |
US20130204892A1 (en) | Biasing search results toward topics of interest using embedded relevance links | |
WO2018111696A1 (en) | Partial storage of large files in distinct storage systems | |
US10671636B2 (en) | In-memory DB connection support type scheduling method and system for real-time big data analysis in distributed computing environment | |
RU2711123C2 (ru) | Способ и система компьютерной обработки одной или нескольких цитат в цифровых текстах для определения их автора | |
US20110125726A1 (en) | Smart algorithm for reading from crawl queue | |
US9122691B2 (en) | System and method for remote file search integrated with network installable file system | |
KR101540012B1 (ko) | 불변 데이터를 자동 검출하는 맵리듀스 순환 처리 장치 및 방법 | |
CN113987375A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
KR100874989B1 (ko) | 단말에 대한 감사 장치, 방법 및 프로그램이 기록된기록매체 | |
KR20160022505A (ko) | 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 유형에 따른 서비스 처리 방법 및 이를 위한 장치 | |
KR20150105882A (ko) | 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 방법 및 이를 위한 서버 | |
TW201224798A (en) | Search system for providing pre-established file in advance and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20130802 |