Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

Ищите поиск в Windows Vista?

Напечатать страницу
28.06.2006 19:36 | Glasten

Большое количество людей задаются вопросом: как сделать грамотный поисковый запрос для поисковой машины Windows Vista? Однако, пока еще нет доступной сопроводительной документации (она появится после выхода Windows Vista). Для тех, кто хочет опробовать ее в деле уже сейчас, предназначено данное руководство...

Фон
Windows Vista включает в себя встроенную платформу индексирования. Поиск, интегрированный в Windows Vista, вы сможете увидеть повсюду, во всех окнах проводника, и даже в главном меню. На основе этой схемы разработано множество приложений Microsoft, например Outlook 2007 и OneNote 2007 - это только несколько из них.
Ваши приложения также могут подключиться к этой схеме, используя новый поставщик услуг БД OLE для Windows Search (существуют также механизмы расширения, с помощью которых вы можете принудительно индексировать данные, но об этом я расскажу в другой раз).
Также, схема поиска и индексирования Windows Vista будет доступна для загрузки для Windows XP и Windows Server 2003. Вы можете загрузить предварительную версию поисковой системы Windows Desktop здесь.

Использование поставщика услуг БД OLE для Windows Search
Несмотря на большое обилие информации о БД OLE, вы не сможете далеко продвинуться без знания специфических особенностей поставщика услуг, например о соединяющей строке и синтаксисе данного запроса (напомню, что если вы используете ADO.NET, вы можете использовать типы, определенные в именах System.Data.OleDb. Если вы не знаете как пользоваться поставщиком услуг БД OLE, не лишним будет посетить Центр доступа и хранения данных MSDN).

Здесь приведен пример соединяющей строки для поставщика услуг БД OLE для Windows Search:

"Provider=Search.CollatorDSO;Extended Properties='Application=Windows';"


Синтаксис запроса - штука очень хитрая, и поэтому я сосредоточусь на ней подробнее.

Утверждения
Поставщик услуг БД OLE для Windows Search поддерживает единственное утверждение: утверждение SELECT (ВЫБОР). Поставщик услуг был разработан исключительно для операций, предназначенных только для чтения, так что нет необходимости в утверждениях INSERT (ВСТАВКА), UPDATE (ОБНОВИТЬ) или DELETE (УДАЛИТЬ).

Структура утверждения SELECT выглядит так:

SELECT <свойства>
  FROM [имяМашины.]SYSTEMINDEX..SCOPE()
  [WHERE <предикаты>]

икаты>][/code]

[code]SELECT <свойства>[/code]
<свойства> представляют собой список из одного или более "столбцов", разделенных запятыми, где столбцы передают свойства, определенные в новой системе свойств Windows Vista.



Примечание о новой системе свойств Windows Vista: в Windows Vista имеется новая система свойств на основе схемы, которая определяет мета-данные, сохраненные в пределах файлов. Сотни свойств, определенных системой будут переданы в Windows Vista, а также будет возможность расширения системы свойств пользовательскими форматами поставщика услуг.


    Документация для Property Description Schema (Схемы Описания Свойств) в документации SDK даст вам хорошее пояснение относительно определения свойств.

    Онлайн-документации к свойствам, определяемым системой пока нет, но есть некоторые сведения в установленном пакете Windows SDK. Чтобы просмотреть документацию этих свойств, перейдите: User Interface->Windows Shell->Shell Reference->Shell Properties




Вот несколько деталей о пункте SELECT, которые поначалу не так очевидны:


    Раздел для имен свойств: Publisher.Application.Property

    Имена свойств должны быть замкнуты в двойные кавычки (из-за периода, используемого в разделе имен).

    SELECT * не поддерживается, так что вам будет нужно определить как минимум одно имя свойства.


[code]FROM [имяМашины.]SYSTEMINDEX..SCOPE()[/code]
Пункт FROM (ОТКУДА) является довольно понятным: так как есть только один индекс, делающий запрос, есть только одна вариация: вы можете поставить предикат SYSTEMINDEX..SCOPE() с именем машины, чтобы выполнить запрос локального индекса удаленной машины (вы должны использовать заранее сконфигурированные версии Windows Vista или Longhorn Server на удаленной машине, прежде чем приступать к работе)

[code][WHERE <предикаты>][/code]
Дополнительный пункт WHERE (ГДЕ) поддерживает множество предикатов.


    Простые предикаты: буквальные сравнения значений (<>,=) и LIKE (ПОДОБНО)

    Полнотекстовые предикаты: CONTAINS (СОДЕРЖИТ) и FREETEXT (ПРОИЗВОЛЬНЫЙ ТЕКСТ)

    Предикаты глубины поиска: SCOPE (КОНТЕКСТ) и DIRECTORY (КАТАЛОГ)


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

Источник: http://blogs.msdn.com/cheller/
Перевод: Glasten

Комментарии

Комментариев нет...
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.161 секунд (Общее время SQL: 0.139 секунд - SQL запросов: 53 - Среднее время SQL: 0.00263 секунд))
Top.Mail.Ru