WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Использование объектов Microsoft Index Server

Использование объектов Microsoft Index Server


Дата публикации: 17-03-2013

Внимание: для переопубликации данного материала необходимо письменное разрешение автора

Знаете ли вы, что для того чтобы создать поисковую систему на сайте вы можете использовать Microsoft Index Server, который входит в Microsoft IIS? Благодаря этому программному пакету вы сможете быстро и легко создать собственный поиск по сайту.

Не верите? Тогда, посмотрим вместе. Создадим на странице форму поиска, где ваш посетитель сможет вводить запрос и которая будет обращаться к БД Index Server.

Создание формы для поиска

Форма для поиска представляет собой обычную HTML-форму с несколькими скрытыми ("hidden") полями, которые отвечают за специфику запроса к поисковой системе.


<!-- search text -->






Search





<!-- max hits -->

<!-- sort by hits -->

<!-- allow enumeration -->

<!-- catalog -->


Help


При просмотре готовой страницы в браузере вы увидите текстовое поле для ввода запроса и кнопку "Фас!". Скрытые поля означают следущее:

mh - максимальное число документов (hits), которое может вернуть поисковая система. Например, вы можете установить это значение в 200. Задание слишком большого значения может излишне загрузить ваш веб-сервер, однако слишком маленькое - также может вернуть недостаточное количество результатов, поэтому здесь вам потребуется определить наиболее оптимальное число для вашего сайта.
sd - имя поля, по которому требуется производить сортировку. В нашем примере мы используем поле hitcount, которое содержит количество повторений слова в документе, т.е. отсортируем результаты поиска по релевантности в порядке убывания - descending (отсюда и "d" в названии поля).
ct указывает, где найти каталог или индексную БД, которая будет использоваться. Когда для создания индекса включается Index Server, администратор указывает, где будет находится индексная БД. Вы должны задать в этом поле правильный путь иначе поисковый запрос возвратит пустой результат.

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

Создание cтраницы для отображения результатов поиска

Теперь очередь за cтраницей результатов, которая будет получать значения из формы, чтобы передать их Index Server.

Общий схема ее работы будет следующей:
Открывается набор записей recordset
Используя стандартные методы ADO cоздается цикл через весь полученный recordset







Результаты поиска





30 then
Response.Write "Попробуйте более" _
& "точно сформулировать запрос."
end if
Response.Write "
"
end if
%>

0
if rsquery("doctitle") <> "" then
Response.Write "

" _
& rsquery("doctitle") & "

"
response.write "" _
& rsquery("characterization") _
& "...

"
Response.Write "" _
& rsquery("hitcount") & "

"
end if
rowcount = rowcount - 1
rsquery.movenext
wend
Response.Write "

"
%>




Документы не найдены. Попробуйте сформулировать
ваш запрос по-другому.








Первая вещь, которую требуется сделать - это установить ссылку на объект Index Server, путем использования метода server.creatobject:

Set objQuery = Server.CreateObject("ixsso.Query")

Теперь объект objQuery установлен и готов для настройки. Зададим запрос, который требуется выполнить в БД. Он может быть получен из входящей информации URL используя:

objQuery.SetQueryFromURL(Request.QueryString)

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

objquery.columns="filename,HitCount,vpath,DocTitle,characterization"

В нашем примере это: имя файла документа filename; число повторений слова HitCount, которое встречается в документе; заголовок документа (в HTML-тэге Title) DocTitle; информация о файле characterization. Этот набор данных позволит дать пользователю краткую, но, в то же время, довольно емкую информацию о найденных документах.

Если вы используете мета-тэг Description для задания описания документа, то его содержание будет включено в characterization. Если нет, тогда characterization будет возвращать начало документа. Так как Index Server игнорирует код ASP-скрипта, то в последнем случае вы получите "реальное" содержание.

И, наконец, можно сделать запрос к БД - просто создаем recordset, также как в любом другом случае работы с ADO.

set rsQuery = objquery.createrecordset ("nonsequential")

С возвращаемым набором записей rsQuery можно использовать MoveNext, MovePrev и др. методы ADO. Чтобы получить значение поля используйте созданный объект rsQuery:

rsquery("doctitle")

Чтобы получить количество записей, возвращенных запросом, используйте свойство Rsquery.RecordCount.

Таким образом, мы сделали элементарный пример работы ASP-приложения с Index Server. Попробуйте его, это действительно просто! Создав собственную поисковую систему вы придатите вашему сайту более профессиональный вид и предотвратите преждевременный уход пользователей с сайта, так как у них теперь появится возможность быстро найти все ваши документы.

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)
Октябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Olav Mjelde:

    "Они больше не делают баги, как Банни (Bugs Bunny)."

    Опрос

    Какими социальными сетями Вы пользуетесь?

    Vkontakte.ru
    Одноклассники
    Мой Мир - mail.ru
    Google Plus
    Facebook
    ЖЖ
    Другие
    Не пользуюсь