Використання об'єктів Microsoft Index Server, Різне, Інтернет-технології, статті

Чи знаєте ви, що для того щоб створити пошукову систему на сайті ви можете використовувати Microsoft Index Server, який входить в Microsoft IIS? Завдяки цьому програмному пакету ви зможете швидко і легко створити власний пошук по сайту.

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

Створення форми для пошуку

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

<form method=”get” action=”/sitesearch/sitesearch.asp”
id=form1 name=form1>
<!– search text –>
<table width=”100%”>
<tr width=”100%” bgcolor=”Black”>
<td width=”100%”>
<font color=”White”>
<b>Search</b>
</font>
</td>
</tr>
</table>
<input type=”text” name=”qu” size=”20″><br>

<!– max hits –>
<input type=”hidden” name=”mh” value=50>
<!– sort by hits –>
<input type=”hidden” name=”sd” value=”Hitcount”>
<!– allow enumeration –>
<input type=”hidden” name=”ae” value=”1″>
<!– catalog –>
<input type="hidden" name="ct" value="c:inetpubwww07120index">
<Input type = "submit" value = "Фас!" name = "Search">
<a href="/sitesearch/searchhelp.asp"> <font size=-1> Help </ a> </ font>
</form>


При перегляді готової сторінки в браузері ви побачите текстове поле для введення запиту і кнопку "Фас!". Приховані поля означають наступне:


Для відображення результату будемо викликати іншу сторінку, яка буде отримувати запит з пошукової форми і передавати його серверу, причому, зверніть увагу, що використовується тип GET.

Створення Сторінки для відображення результатів пошуку

Тепер черга за сторінка результатів, яка буде отримувати значення з форми, щоб передати їх Index Server.

Загальний схема її роботи буде наступною:

  • Відкривається набір записів recordset
  • Використовуючи стандартні методи ADO Створити цикл через весь отриманий recordset
    <%
    Створюємо об'єкт Query і инициализируем його
    використовуючи SetQueryFromURL

    Set objQuery = Server.CreateObject(“ixsso.Query”)

    Отримати властивості query з вхідної
    URL (використовуючи тип форми GET)
    objQuery.SetQueryFromURL(Request.QueryString)

    Задамо необхідні поля
    objquery.columns = "filename, HitCount, vpath, DocTitle, characterization"

    Відкриємо recordset
    set rsQuery = objquery.createrecordset(“nonsequential”)

    І поки властивість rsquery.eof не дорівнює TRUE виводимо
    результати. Значення TRUE означатиме кінець recordset

    %>

    <html>
    <head>
    </head>

    <h1> Результати пошуку </ h1>
    <br><br>
    <%
    if not rsquery.eof then
    Response.Write "Знайдено" _
    & Rsquery.recordcount & "документів."
    if rsquery.recordcount > 30 then
    Response.Write "Спробуйте більш" _
    & "Точно сформулювати запит."
    end if
    Response.Write “<br>”
    end if
    %>

    <%
    if not rsquery.eof then
    while not rsquery.eof and rowcount > 0
    if rsquery(“doctitle”) <> “” then
    Response.Write “<p><b><a href=” _
    & rsquery(“vpath”) & “>” _
    & Rsquery ("doctitle") & "</ a> </ b> <br>"
    response.write “<font size=-1>” _
    & rsquery(“characterization”) _
    & “…</font><Br>”
    Response.Write “<font size=-2>” _
    & rsquery(“hitcount”) & “</font></p>”
    end if
    rowcount = rowcount – 1
    rsquery.movenext
    wend
    Response.Write “<br><Br>”
    %>

    <%
    else
    %>

    <p>
    Документи не знайдені. Спробуйте сформулювати
    ваш запит по-іншому.
    </p>

    <%
    end if
    %>

    </body>
    </html>


    Перша річ, яку потрібно зробити – це встановити посилання на об'єкт 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. Спробуйте його, це дійсно просто! Створивши власну пошукову систему ви придати вашому сайту більш професійний вид й уникнете передчасний відхід користувачів з сайту, так як у них тепер з'явиться можливість швидко знайти всі ваші документи.

  • Схожі статті:


    Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

    Коментарів поки що немає.

    Ваш отзыв

    Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

    *

    *