Механизм отложенного поиска



Механизм отложенного поиска
Механизм отложенного поиска
Механизм отложенного поиска
Механизм отложенного поиска
Механизм отложенного поиска

 


Владельцы патента RU 2412477:

МАЙКРОСОФТ КОРПОРЕЙШН (US)

Изобретение относится к области вычислительной техники и может быть использовано в системах, имеющих операционную систему. Техническим результатом является увеличение скорости обработки запросов. Индексация документов осуществляется с использованием низкоприоритетных запросов ввода/вывода. Низкоприоритетные запросы ввода/вывода могут быть использованы для доступа к документам, подлежащим индексации. Низкоприоритетные запросы ввода/вывода также могут быть использованы для записи информации в индекс. Запросы с более высоким приоритетом могут быть использованы для запросов ввода/вывода на получение доступа к индексу в ответ на запросы пользователя. Приоритет запросов ввода/вывода может быть установлен на потоковой основе в противоположность установке на процессией основе (который может генерировать два или более потока, для которых может быть желательно назначение разных приоритетов). 6 н. и 14 з.п. ф-лы, 5 ил.

 

УРОВЕНЬ ТЕХНИКИ

Некоторые операционные системы, разработанные для персональных компьютеров (включая переносные/блокнотные компьютеры и портативные вычислительные устройства, а также настольные компьютеры), имеют полнотекстовую поисковую систему, которая позволяет пользователю искать выбранное слово или слова в тексте документа, сохраненного в персональном компьютере. Некоторые полнотекстовые поисковые системы включают в себя подсистему индексации, которая в основном контролирует документы, хранящиеся в персональном компьютере, и сохраняет каждое слово документа в индекс, так что пользователь может производить индексированные поиски, используя ключевые слова. Этот процесс индексации интенсивно использует центральный процессор (ЦПУ) и ввод/вывод данных (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) или другие оптические носители, магнитные кассеты, магнитную ленту, магнитные дисковые носители или другие магнитные носители либо любые другие носители, которые могут быть использованы для хранения требуемой информации и к которым может быть осуществлен доступ компьютером.

«Среда передачи данных» обычно воплощает читаемые компьютером инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая волна или другой транспортный механизм. «Среда передачи данных» также включает в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет один или несколько параметров, установленных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве неограничивающего примера только среда передачи данных включает в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение, и беспроводную среду, такую как акустическая, РЧ (радиочастотная), инфракрасная и другая беспроводная среда. Комбинации любых из вышеприведенных также включены в область читаемых компьютером носителей.

Ссылка была сделана во всей этой спецификации на «один вариант осуществления», «вариант осуществления» или «примерный вариант осуществления», означая, что конкретно описанный признак, структура или параметр содержатся по меньшей мере в одном варианте осуществления настоящего изобретения. Таким образом, использование таких фраз может указывать на более чем один вариант осуществления. Более того, описанные признаки, структуры или параметры могут комбинироваться любым подходящим образом в одном или нескольких вариантах осуществления.

Специалист в соответствующей области техники может признать, тем не менее, что изобретение может быть практически использовано без одного или нескольких специальных деталей или с другими способами, ресурсами, материалами и т.д. В других случаях хорошо известные структуры, ресурсы или операции не показаны или описаны подробно только, чтобы избежать неясных аспектов изобретения.

Хотя примерные варианты осуществления и приложения настоящего изобретения были проиллюстрированы и описаны, следует понимать, что изобретение не ограничено конкретной конфигурацией и ресурсами, описанными выше. Различные модификации, изменения и вариации очевидные для специалиста в данной области техники, могут быть сделаны в расположении, работе и деталях способов и систем настоящего изобретения, раскрытого здесь, не отклоняясь от области заявленного изобретения.

1. Реализуемый на компьютере способ передачи запросов ввода/вывода (I/O) в файловую систему, содержащий этапы, на которых:
ожидают запроса ввода/вывода;
определяют запрос ввода/вывода как низкоприоритетный запрос ввода/вывода после определения того, что источником запроса ввода/вывода является индексирующая подсистема, в рамках процесса создания индекса, используемого для осуществления пословного поиска набора документов;
определяют запрос ввода/вывода как высокоприоритетный запрос ввода/вывода после определения того, что источником запроса ввода/вывода является подсистема запросов, для поиска индекса, созданного индексирующей подсистемой;
сохраняют запрос ввода/вывода в очереди низкоприоритетных запросов ввода/вывода, когда запрос ввода/вывода определен как низкоприоритетный запрос ввода/вывода;
сохраняют запрос ввода/вывода в очереди высокоприоритетных запросов ввода/вывода, когда запрос ввода/вывода определен как высокоприоритетный запрос ввода/вывода;
обрабатывают каждый запрос ввода/вывода, который содержится в очереди высокоприоритетных запросов ввода/вывода, перед обработкой каждого запроса ввода/вывода в очереди низкоприоритетных запросов ввода/вывода, так что ресурсы обработки центрального процессорного устройства (ЦПУ) сначала назначаются запросам ввода/вывода, хранящимся в очереди высокоприоритетных запросов ввода/вывода, а затем низкоприоритетным запросам ввода/вывода, хранящимся в очереди низкоприоритетных запросов ввода/вывода.

2. Способ по п.1, дополнительно содержащий определение запроса ввода/вывода как высокоприоритетного запроса ввода/вывода в ответ на определение того, что запрос ввода/вывода был сгенерирован компонентом, отличным от индексирующей подсистемы.

3. Способ по п.1, в котором запрос ввода/вывода, генерируемый в ответ на запрос поиска, генерируется подсистемой запросов и передается с высоким приоритетом.

4. Способ по п.1, в котором запрос ввода/вывода, генерируемый в ответ на считывание документа, подлежащего индексации, генерируется индексирующей подсистемой.

5. Способ по п.1, в котором запрос ввода/вывода, генерируемый в ответ на запись данных в индекс, генерируется индексирующей подсистемой.

6. Способ по п.1, в котором приоритеты могут быть назначены запросам ввода/вывода на потоковой основе.

7. Способ по п.1, дополнительно содержащий назначение задач центрального процессорного устройства (ЦПУ), генерируемых индексирующей подсистемой как низкоприоритетных задач ЦПУ.

8. Машиночитаемый носитель, содержащий инструкции, которые при выполнении их компьютером, реализуют способ по п.1.

9. Реализуемый на компьютере способ индексации документа, содержащий этапы, на которых:
принимают запрос ввода/вывода;
определяют запрос ввода/вывода как низкоприоритетный запрос ввода/вывода, когда источником запроса ввода/вывода является индексирующая подсистема, в рамках процесса создания индекса, используемого для выполнения пословного поиска набора документов;
определяют запрос ввода/вывода как высокоприоритетный запрос ввода/вывода, когда источником запроса ввода/вывода является подсистема запросов, для поиска индекса, созданного индексирующей подсистемой; и
когда источником запроса ввода/вывода является индексирующая подсистема, как часть процесса создания индекса, используемого для выполнения пословного поиска документа:
считывают содержимое документа из файловой системы, используя только низкоприоритетные запросы ввода/вывода (I/O) с точки зрения обработки ЦПУ, чтобы ресурсы обработки ЦПУ сначала назначались всем запросам, использующим больший объем ресурсов обработки ЦПУ, а затем запросам с более низким приоритетом с точки зрения обработки ЦПУ;
извлекают слова из содержимого; и
сохраняют извлеченные слова в индексе, используя только низкоприоритетные запросы ввода/вывода.

10. Способ по п.9, дополнительно содержащий преобразование содержимого в открытый текст.

11. Способ по п.9, в котором извлечение выполняется с использованием процесса разбивки слов.

12. Способ по п.9, в котором низкоприоритетные запросы ввода/вывода связаны с одной или более низкоприоритетными задачами ЦПУ.

13. Способ по п.9, в котором к индексу осуществляют выборочный доступ с использованием одного или более высокоприоритетных запросов ввода/вывода в ответ на запрос, генерируемый пользователем.

14. Способ по п.13, в котором один или более запросов ввода/вывода с низким приоритетом с точки зрения обработки ЦПУ и один или более запросов ввода/вывода, связанных с запросом, генерируются различными потоками одного процесса.

15. Машиночитаемый носитель, содержащий инструкции, которые при выполнении их компьютером реализуют способ по п.9.

16. Система для создания индекса, используемого в поиске одного или более документов по одному или более выбранным словам, содержащая:
процессор и машиночитаемый носитель;
файловую систему, хранящуюся на машиночитаемом носителе, которая поддерживает, по меньшей мере, запросы ввода/вывода с низким и высоким приоритетами с точки зрения обработки ЦПУ;
запоминающее устройство, соединенное с процессором, для хранения одного или более документов, подлежащих индексации, и индекса, причем запоминающее устройство доступно через файловую систему; и
процесс индексации, выполняемый процессором для:
получения запроса ввода/вывода;
определения запроса ввода/вывода как низкоприоритетного запроса ввода/вывода, когда источником запроса ввода/вывода является индексирующая подсистема, в рамках процесса создания индекса, используемого для выполнения пословного поиска набора документов;
определения запроса ввода/вывода как высокоприоритетного запроса, когда источником запроса ввода/вывода является подсистема запросов, для поиска индекса, созданного индексирующей подсистемой;
сохранения запроса ввода/вывода в очереди с низкоприоритетными запросами ввода/вывода, когда запрос ввода/вывода определяется как низкоприоритетный запрос ввода/вывода;
сохранения запроса ввода/вывода в очереди с высокоприоритетными запросами ввода/вывода, когда запрос ввода/вывода определяется как высокоприоритетный запрос ввода/вывода;
обработки каждого запроса ввода/вывода, который содержится в очереди с высокоприоритетными запросами ввода/вывода, до обработки каждого запроса ввода/вывода в очереди с низкоприоритетными запросами; и
индексирующую подсистему, которая, в качестве части процесса создания индекса, считывает один или более документов из запоминающего устройства и сохраняет данные в индексе таким образом, чтобы ресурсы обработки ЦПУ сначала назначались запросам, использующим большой объем ресурсов обработки ЦПУ, а затем запросам с меньшим приоритетом с точки зрения обработки ЦПУ; причем процесс индексации генерирует только низкоприоритетные запросы для считывания одного или более документов из запоминающего устройства и генерирует только низкоприоритетные запросы для хранения данных в индексе.

17. Система по п.16, в которой процесс индексации также отправляет один или более высокоприоритетных запросов ввода/вывода в файловую систему в ответ на запрос поиска, который осуществляет доступ к индексу.

18. Систему по п.16, в которой низкоприоритетные запросы ввода/вывода связаны с одной или более низкоприоритетными задачами ЦПУ.

19. Система по п.16, в которой один или более низкоприоритетных запросов ввода/вывода и один или более запросов ввода/вывода, связанных с запросом, генерируются различными потоками одного процесса.

20. Машиночитаемый носитель, содержащий инструкции, которые при выполнении их компьютером реализуют систему по п.16.



 

Похожие патенты:

Изобретение относится к информационному поиску. .

Изобретение относится к вычислительной технике. .
Изобретение относится к способам поиска информации в сети Интернет с использованием поисковых систем на основе микропроцессорной техники. .

Изобретение относится к области информатики и вычислительной техники и может быть использовано для контроля информационных потоков при мониторинге информационного трафика.

Изобретение относится к области информационных технологий, в частности к способам поиска информации в больших документальных базах данных (БД). .

Изобретение относится к способу управления системой реляционной базы данных путем запроса в реляционную базу данных, содержащему в качестве соответствующей структуры данных множество таблиц данных, связанных между собой отношениями, с использованием языка базы данных.

Изобретение относится к области баз данных. .

Изобретение относится к области организации ресурсов в коллекции. .

Изобретение относится к средствам проецирования информации или представления, позволяющим пользователю представлять информацию на одном или нескольких экранах без необходимости в дополнительных кабелях

Изобретение относится к области воспроизведения информации на дисплее, а именно к воспроизведению информации о медиа файлах, содержащихся в устройстве

Изобретение относится к вычислительной технике, в частности к способу компрессии многомерных данных для хранения, поиска и анализа информации в системе управления базами данных и устройству для его осуществления

Изобретение относится к синхронизации и обновлению документов, доступных и поддающихся изменению множеством клиентов на разнообразных устройствах через сеть

Изобретение относится к методам для клонирования и управления фрагментами базы данных

Изобретение относится к устройству для поиска информации и оперативной идентификации в цифровых системах связи, в частности в сети передачи данных типа "Internet" стека коммуникационных протоколов TCP/IP

Изобретение относится к способам определения подобия объектов и, в частности, к определению подобия на основании связей между объектами

Изобретение относится к области автоматического усовершенствования и выбора запросов и/или результатов поиска в соответствии с персонализированной пользовательской моделью
Наверх