это способ, которым пользователи Интернета
Занятие 3. Запросы
(продолжительность занятия 55 минут)
Изучив материал этого занятия, Вы сможете:
- Область запроса — задает набор документов, который будет просматриваться средствами поиска при выполнении запроса. Область обычно описывается путем к папке на томе носителя, например D:\Docs.
- Ограничения на запрашиваемое содержимое — позволяют сузить круг поиска, задавая текст, который нужно найти.
- Ограничения на свойства документов - задают атрибуты файлов, которые должны просматриваться при поиске, например размер файла, даты создания и изменения, имя или автор.
- Выделение искомого текста в найденных документах — это средство помогает создать HTML-страницу со списком документов, отвечающих критериям запроса, с выделением искомых слов красным курсивом. Кнопки Show Highlights (condensed) и Show Highlights (full text), расположенные под резюме каждого из найденных документов, позволяют посмотреть выделенные слова.
- Протоколирование запросов — Internet Information Server протоколирует весь трафик между клиентом и сервером. В стандартном режиме протоколирования регистрируется такая информация, как IP-адрес автора запроса и число запросов, обработанных сервером.
Элементы формы запроса
Простейшая форма запроса состоит из следующих элементов.
HTML-файл — отображает Web-страницу, на которой пользователь вводит параметры запроса. Это же файл отображает результат запроса, выполненного Index Server,
Файл запроса данных
(Internet Data Query, IDQ) — IDQ-файл (файл с расширением .idq); это промежуточная форма пользовательского запроса, которую Index Server использует при просмотре индекса, Файл HTML-расширения (НТХ) —
НТХ-файл (файл с расширением .htx) представляет собой HTML-файл результатов запроса. Эти данные затем добавляются в HTML-страницу, которая передается Web-обозревателю для предоставления клиенту. Примечание
Index Server использует еще один файл, с расширением .htw — шаблон для форматирования страницы с выделением вхождений искомого текста. Содержимое HTW- и НТХ-файлов форматируется в виде Web-страницы и передается Web-обозревателю. Кроме того, для создания форм запросов можно применять активные страницы сервера (ASP) и язык структурированных запросов (SQL). Поддержку SQL S обеспечивают активные объекты данных (Microsoft Active Data Objects, ADO).
Создавая формы запросов средствами ASP, Вы вправе использовать сценарные возможности ActiveX. Запросы с применением asp-файлов позволяют воспользоваться преимуществами сценарных языков Microsoft VBScript и JScript для достижения большей гибкости в отображении результатов запроса. Активные страницы сервера подробно описаны в главе II, “Активные страницы сервера”.
Вместо стандартных форм 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=%CiRestrlction%
CiMaxRecordslnResultSet=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% | Условия, по которым выполняется поиск |
CiMaxRecordslnResultSet=150 | Возврат не более 150 результатов |
CiMaxRecordsPerPage==10 | Возврат не более 10 результатов на одной Web- странице |
CiScope=\ | Запуск запроса в корневой папке |
CiTemplate=/scripts/spdcl.htx | Для форматирования результатов используется файл Spdcl.htx |
CiSort=rank[dl | Сортировка результатов в порядке убывания (“d”) ранга |
CiCatalog=d:\ | При обработке запроса должен использоваться индекс, хранящийся в корневом каталоге диска D |
НТХ-файл — это HTML-файл, переменные которого ссылаются на данные результата запроса. Например, приведенный ниже код НТХ-файла определяет заголовок страницы, который отображает заданные в запросе условия поиска и диапазон документов на текущей странице. После примера кода показан форматированный HTML-текст, получившийся в результате его работы.
<%if CiMatchedRecordCount eq 0%>
<Н4>Нет документов, удовлетворяющих критерию поиска "<%CiRestrictionHTML%>" .</ Н4>
<%else%>
<Н4>Документы с <%CiFirstRecordNumber%> по %CiLastRecordNumber%> из
<%if CiMatchedRecordCount eq CiMaxRecordslnResultSet%>
первых
<%endif%>
<%CiMatchedRecordCount%>, удовлетворяющих критерию поиска "<%CiRestrictionHTML%>". </Н4>
<%endif%>
Результат работы этого кода:
Документы с 1 по 10 из первых 150, удовлетворяющих критерию поиска "systems management".
Здесь переменная <%CiFirstRecordNumber%> имеет значение 1, а <%CiMatchedRecordCount%> —150.
НТХ-файл — это стандартный HTML-файя, использующий расширения Internet Information Server и Index Server для работы с именами переменных и другой информацией. Index Server использует НТХ-файл в качестве шаблона для форматирования результатов обработки запроса.
Упражнение
В этом упражнении Вы выполните поиск по примеру индекса. Образцы страниц запросов Index Server дают достаточно полное представление о его средствах работы с запросами. Для успешного выполнения упражнений этой главы должен быть запущен процесс Index Server (Cidaemon.exe).
8 Проверка работы процесса Index
Server 1. Нажмите клавиши CTRL+ALT+DELETE и щелкните кнопку Task Manager.
2. Откройте вкладку Processes. Если Index Server работает, Вы увидите в списке процесс Cidaemon.exe. Закройте Task Manager.
8 Запуск процесса создания индекса
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.
8 Проверка состояния индексирования средствами 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-узла, а затем выполните операцию слияния, чтобы отфильтровать и проиндексировать новые документы. Этот процесс увеличит значения нескольких счетчиков.
8 Обновление индекса средствами Index Server Manager
1. С помощью Проводника Windows NT скопируйте содержимое папки \lis\Practice\lndex, расположенной на прилагаемом к книге компакт-диске, в папку C:\lnetpub\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. Сравните записанные ранее значения трех счетчиков с текущими. Общее число документов должно увеличиться, число отфильтрованных документов также должно возрасти, а число файлов, подлежащих фильтрованию, должно стать равным нулю.
8 Проверка состояния индекса средствами 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.
И в завершение Вы создадите два запроса — один из них будет выполнять поиск по тексту, а второй по свойствам документов — и исследуете различия между ними.
Примечание
Результаты этого упражнении зависят от того, на какой стадии индексирования находится Ваша совокупность документов. 8 Выполнение расширенных запросов
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. Использование сценарных языков позволяет достичь большей гибкости в отображении результатов запроса.