Занятие 3. Запросы

(Продолжительность занятия 55 минут)

Запросы — это способ, которым пользователи Интернета и интрасети выполняют поиск интересующего их фрагмента текста или свойства документов Вашего сервера. На этом занятии Вы познакомитесь с запросами и их обслуживанием.


Изучив материал этого занятия, Вы сможете:


Формы запросов позволяют пользователям Вашего Web-узла искать документы, отвечающие заданным критериям. Index Server позволяет снабдить форму запроса дополнительными средствами, упрощающими его обработку и улучшающими отображение результатов, а также контролирующими использование запроса.

В состав Index Server включен образцы форм запросов. Вы вправе использовать его для поиска в индексированных файлах. Эти формы можно сделать доступными посетителям Web-узлов и воспользоваться ими при разработке собственных форм. Чтобы открыть образец формы запроса, в меню Start выберите команды Programs, Windows NT 4.0 Option Pack, Microsoft Index Server, Index Server Sample Query Form.

Элементы формы запроса

Простейшая форма запроса состоит из следующих элементов.


Примечание Index Server использует еще один файл, с расширением .htw — шаблон для форматирования страницы с выделением вхождений искомого текста. Содержимое HTW- и НТХ-файлов форматируется в виде Web-страницы и передается Web-обозревателю.


Кроме того, для создания форм запросов можно применять активные страницы сервера (ASP) и язык структурированных запросов (SQL). Поддержку SQL обеспечивают активные объекты данных (Microsoft Active Data Objects, ADO).

Создавая формы запросов средствами ASP, Вы вправе использовать сценарные возможности ActiveX. Запросы с применением asp-файлов позволяют воспользоваться преимуществами сценарных языков Microsoft VBScript и JScript для достижения большей гибкости в отображении результатов запроса. Активные страницы сервера подробно описаны в главе 11, «Активные страницы сервера».

Вместо стандартных форм Index Server допустимо создание SQL-запросов в приложениях, использующих ADO. Таким образом, ASP-файл может применять расширения SQL для формирования запроса, ADO для выбора данных и сценарный язык (например, VBScript) для их отображения.


Примечание Если производительность сервера Index Server недостаточна, ограничьтесь базовыми формами (.idq-, .htx- и .htm-файлы). Запросы с применением ASP и SQL требуют больших вычислительных мощностей, чем базовые формы.


Процесс запроса

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

Как показано на рисунке, Index Server начинает работу с преобразования поступившего запроса из формы во внутреннее представление, совместимое с индексами Index Server. Затем Index Server выполняет запрос и возвращает результаты пользователю в формате HTML.

Index Server использует IDQ-файлы для преобразования запроса из Web-формы во внутреннее представление, а НТХ-файлы — для форматирования результатов выполнения запроса.

Наборы результатов

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

В форме запроса можно ограничить максимальное число документов, отвечающих условиям отбора, размещаемых на одной странице результатов. Например, Вы вольны так организовать набор результатов, состоящий из 200 элементов, чтобы клиент получил информацию на 10 страницах, каждая из которых содержит по 20 найденных соответствий. Кроме того, в форму можно включить элемент, позволяющий клиенту ограничить число возвращаемых документов. Index Server способен расположить элементы набора результатов в порядке, определяемом любым свойством документа.

Если для обеспечения безопасности Internet Information Server применяются списки контроля доступа (Access Control Lists, ACL), а индексируемая совокупность документов хранится на томе NTFS, Index Server учтет эти ограничения, проверяя списки контроля доступа. Пользователь не получит в наборе результатов ссылку на документ, если у него нет права чтения этого документа.

Если список контроля доступа разрешает доступ к документу, клиент может указать, информацию о каких свойствах сервер должен вернуть в наборе результатов (эта информация определяет столбцы набора результатов).

Кроме информации о свойствах документов, Index Server способен возвращать аннотации к документам, причем аннотации могут значительно сузить область поиска.

Построение запросов и результатов

Файлы запроса данных по Интернету (файлы с расширением .idq) служат для преобразования запросов. Обладающие большими возможностями НТХ-файлы в сочетании с IDQ-файлами форматируют результаты запроса. Как показано на приведенном ниже рисунке, НТХ-файлы могут содержать расширения, позволяющие воспользоваться .уникальными особенностями запросов Index Server.

К папке, где хранятся IDQ-файл и соответствующий ему НТХ-файл, должен быть разрешен доступ для выполнения. Объявление параметров с помощью IDQ-файлов IDQ-файл преобразует параметры HTML-формы в запрос, который выполняет Index Server.


Примечание Все пути к IDQ-файлам должны быть полными, а не относительными или физическими путями от виртуального сервера. Другими словами, все пути должны начинаться с символа косой черты «/» и не могут включать символы «.» или «..». Допустимые и недопустимые варианты приведены ниже.

Допустимый вариант

/scripts/myquery.idq

/scripts/samples/search/query.idq

Недопустимый вариант

c:\inetsrv\scripts\myquery.idq

scripts/query.idq

/samples/../scripts/query.idq

IDQ-файлы нельзя хранить на виртуальном сервере, заданном UNC-именем.


IDQ-файл состоит из двух разделов: имен и запроса.

Раздел имен

Всю работу выполняет раздел запроса, однако раздел имен позволяет задать нестандартные имена столбцов, к которым можно обращаться в запросе. Эти столбцы соответствуют свойствам ActiveX, определенным в файлах документов с помощью интерфейса IPropertyStorage или механизма пользовательских и итоговых свойств Microsoft Office. Раздел имен — мощный инструмент, позволяющий настроить поиск для конкретных нужд Вашей организации. Присутствие раздела имен в IDQ-файле не обязательно; в стандартных запросах он просто не нужен.

Раздел запроса

В разделе запроса задаются его фактические параметры. В этом качестве могут выступать такие свойства, как область запроса, ограничения на содержимое, наборы результатов либо переменные форм, включая условные выражения, изменяющие значения переменной в зависимости от какого-либо условия. Раздел запроса начинается с тэга [Query], за которым следует набор параметров. Ниже приведен пример простого, но вполне типичного IDQ-файла.

[Query]

CiColumns=filename,size, rank,characterization,vpath,DocTitle,write

CiFlags=DEEP

CiRestriction=%CiRestriction%

CiMaxRecordsInResultSe-t=150

CiMaxRecordsPerPage=10

CiScope=\

CiTemplate=/scripts/spdc1. htx CiSort=rank[d] CiCatalog=d:\

Смысл строк этого файла поясняется в приведенной ниже таблице.

Строка запроса

Описание

[Query]

Тэг начала тела запроса

CiColumns= filename, size, rank, characterization, vpath, DocTitle, write

Свойства, которые должны быть возвращены в наборе результатов (имя файла, размер, аннотация и т. п.)

CiFlags=DEEP

Запрос должен выполняться над всеми дочерними папками области запроса

CiRestriction=%CiRestriction%

Условия, по которым выполняется поиск

CiMaxRecordsInResultSet= 150

Возврат не более 150 результатов

CiMaxRecordsPerPage= 10

Возврат не более 10 результатов на одной Web-странице

CiScope=\

Запуск запроса в корневой папке

CiTemplate=/scripts/spdc 1 .htx

Для форматирования результатов используется файл Spdcl.htx

CiSort=rank[d]

Сортировка результатов в порядке убывания («d») ранга

CiCatalog=d:\

При обработке запроса должен использоваться индекс, хранящийся в корневом каталоге диска D

 

Оформление результатов запроса средствами НТХ-файлов

НТХ-файл — это HTML-файл, переменные которого ссылаются на данные результата запроса. Например, приведенный ниже код НТХ-файла определяет заголовок страницы, который отображает заданные в запросе условия поиска и диапазон документов на текущей странице. После примера кода показан форматированный HTML-текст, получившийся в результате его работы.

<%if CiMatchedRecordCount eq 0%>

<Н4>Нет документов, удовлетворяющих критерию поиска "<%CiRestrictionHTML%>".</

Н4>

<%else%>

<Н4>Документы с <%CiFirstRecordNumber%> no <%CiLastRecordNumber%> из

<%if CiMatchedRecordCount eq CiMaxRecordsInResultSet%>

первых

<%endif%>

<%CiMatchedRecordCount%>, удовлетворяющих критерию поиска

"<%CiRestrictionHTML%>".</H4>

<%endif%>

Результат работы этого кода:

Документы с 1 по 10 из первых 150, удовлетворяющих критерию поиска "systems management".

Здесь переменная <%CiFirstRecordNumber%> имеет значение 1, а <%CiMatchedRecordCount%> — 150.

НТХ-файл — это стандартный HTML-файл, использующий расширения Internet Information Server и Index Server для работы с именами переменных и другой информацией. Index Server использует НТХ-файл в качестве шаблона для форматирования результатов обработки запроса.

Упражнение

В этом упражнении Вы выполните поиск по примеру индекса. Образцы страниц запросов Index Server дают достаточно полное представление о его средствах работы с запросами. Для успешного выполнения упражнений этой главы должен быть запущен процесс Index Server (Cidaemon.exe).

> Проверка работы процесса Index Server

  1. Нажмите клавиши CTRL+ALT+DELETE и щелкните кнопку Task Manager.
  2. Откройте вкладку Processes. Если Index Server работает, Вы увидите в списке процесс Cidaemon.exe.
  3. Закройте Task Manager.

> Запуск процесса создания индекса

  1. В меню Start выберите команды Programs, Windows NT 4.0 Option Pack, Microsoft Index Server, Index Server Sample Query Form. Будет запущен Microsoft Internet Explorer, а в его окне появится форма запроса.
  2. В поле Enter your query below наберите ftp.
  3. Нажмите Go. Этот запрос запускает процесс Cidaemon.exe, который приступает к созданию индекса.

    Примечание Если на экране появится сообщение системы защиты, щелкните кнопку Yes.


    На странице результатов будет перечислено около 100 найденных документов. 4. Закройте Internet Explorer.

 

Теперь Вы поупражняетесь в администрировании Index Server, проверив текущее состояние индексирования с помощью утилиты Performance Monitor и Internet Explorer.

> Проверка состояния индексирования средствами Performance Monitor

  1. В меню Start выберите команды Programs, Administrative Tools, Performance Monitor.
  2. Нажмите CTRL+R чтобы открыть окно представления Report.
  3. Щелкните кнопку со значком (+), чтобы добавить в отчет счетчики. Появится диалоговое окно Add to Report.
  4. В списке Object выберите Content Index.
  5. В списке Counters выберите все счетчики, а затем нажмите кнопку Add.
  6. Нажмите кнопку Done. Performance Monitor покажет состояние индекса. Выполняя дальнейшее задание, Вы можете время от времени средствами Performance Monitor проверять, не завершился ли процесс индексирования.

Сейчас Вы скопируете файлы в виртуальный корень Web-узла, а затем выполните операцию слияния, чтобы отфильтровать и проиндексировать новые документы. Этот процесс увеличит значения нескольких счетчиков.

> Обновление индекса средствами Index Server Manager

  1. С помощью Проводника Windows NT скопируйте содержимое папки \Iis\Practice\Index, расположенной на прилагаемом к книге компакт-диске, в папку C:\Inetpub\Wwwroot.
  2. Нажмите клавиши ALT+TAB, чтобы вернуться в окно Performance Monitor.
  3. Нажмите клавиши CTRL+U, чтобы обновить отчет. Теперь отчет показывает, что число файлов, подлежащих фильтрованию, отлично от нуля. Запишите число отфильтрованных документов, число файлов, подлежащих фильтрованию, и общее число документов.

    Примечание Так как Вы скопировали файлы в виртуальный корень Web- узла, для фильтрования и индексирования новых документов необходимо выполнить операцию слияния.


  4. В меню Start выберите команды Programs, Windows NT 4.0 Option Pack, Microsoft Index Server, Index Server Manager.
  5. В левой панели окна щелкните узел Index Server on Local Machine.
  6. В столбце Catalog раздела Scope щелкните правой кнопкой папку Web.
  7. Выберите в меню команду Merge. Появится диалоговое окно с вопросом, хотите ли Вы выполнить операцию слияния в каталоге.
  8. Нажмите Yes.
  9. Когда операция слияния завершится, нажмите клавиши ALT+TAB для возврата в окно Performance Monitor.
  10. Нажмите клавиши CTRL+U, чтобы обновить отчет Performance Monitor.
  11. Сравните записанные ранее значения трех счетчиков с текущими. Общее число документов должно увеличиться, число отфильтрованных документов также должно возрасти, а число файлов, подлежащих фильтрованию, должно стать равным нулю.

> Проверка состояния индекса средствами Internet Explorer

  1. В меню Start выберите команды Programs, Windows NT 4.0 Option Pack, Microsoft Index Server, Index Server Manager (HTML). Страница Index Server Administration будет открыта в окне Internet Explorer.
  2. Нажмите кнопку Refresh, чтобы посмотреть статистику индексирования (Index Statistics). На административной странице отображается два набора статистических данных: статистика кэша и статистика индекса.
  3. Ознакомьтесь со статистикой индекса. Если появилось сообщение «Index is up to date», то процесс индексирования завершен. Сообщение «Index is not up to date» означает, что индексирование еще продолжается.
  4. Если значение счетчика Wordlists больше нуля, нажмите кнопку Merge Index. Это позволяет оптимизировать поисковые возможности Index Server. По выполнении операции Internet Explorer в окне появится страница Index Server Administration. И в завершение Вы создадите два запроса — один из них будет выполнять поиск по тексту, а второй по свойствам документов — и исследуете различил между ними.

Примечание. Результаты этого упражнении зависят от того, на какой стадии индексирования находится Ваша совокупность документов.


> Выполнение расширенных запросов

  1. В меню Start выберите команды Programs, Windows NT 4.0 Option Pack, Microsoft Index Server, Index Server Sample Query Form. В окне Internet Explorer откроется форма запроса.
  2. В левой части страницы щелкните ссылку Advanced ASP Sample.
  3. В поле Document author наберите Smith

  4. Нажмите кнопку Execute. В окне результатов запроса будет указано, что критерию «smith» отвечают пять документов.

    Примечание Если на экране появится сообщение системы защиты, в ответ щелкните кнопку Yes.


  5. В меню Start выберите команды Programs, Windows NT 4.0 Option Pack, Microsoft Index Server, Index Server Manager (HTML). В окне Internet Explorer появится страница Administration — Index Statistics. Заметьте, что значение счетчика Total queries со времени последнего обращения к странице увеличилось.

Резюме

Процесс запроса инициируется пользователем и взаимодействует с Internet Information Server для передачи ему запроса, его обработки и возврата результатов клиенту. Index Server использует IDQ-файлы для преобразования запроса из Web- формы во внутреннее представление, а НТХ-файлы — для форматирования результатов обработки запроса. Вы также можете создавать формы запросов средствами ASP. Использование сценарных языков позволяет достичь большей гибкости в отображении результатов запроса.

Используются технологии uCoz