Большое количество людей задаются вопросом: как сделать грамотный поисковый запрос для поисковой машины 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, не лишним будет посетить
Здесь приведен пример соединяющей строки для поставщика услуг БД 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, а также будет возможность расширения системы свойств пользовательскими форматами поставщика услуг.
Документация для
Онлайн-документации к свойствам, определяемым системой пока нет, но есть некоторые сведения в установленном пакете 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 (КАТАЛОГ)
В своем следующем сообщении, я затрону некоторые детали, касающиеся предикатов, а также продемонстрирую некоторые примеры их использования.
Источник:
Перевод: Glasten
По теме
- Windows Vista официально "мертва"
- Завтра прекращается поддержка Windows Vista
- Остался последний месяц поддержки Windows Vista
- 11 апреля Microsoft прекратит поддержку Windows Vista
- Через год прекращается поддержка Windows Vista
- Microsoft открыла исходный код Open XML SDK
- Баллмер: Longhorn/Vista - моя самая серьезная ошибка
- Сегодня заканчивается бесплатная фаза поддержки Windows Vista и Office 2007
- Microsoft продлила срок поддержки Windows Vista и Windows 7
- Практики обеспечения безопасности Microsoft - лучшие в мире