使用索引服务器

服务器|索引

使用索引服务器的对象 

  你可以象使用其它数据库一样使用索引服务器,也就是Index Server,它是IIS4中包含的内容索引引擎。你可以对它进行ADO调用并搜索你的站点,它为你提供了一个很好的web 搜索引擎。

  它非常容易使用。你只需要声明对象,然后对引擎进行调用,然后引用你所请求的属性、栏和值。

  那么,怎样做以上这些工作呢?

  设置提示用户进行输入的表单页面,这个页面将被传递到索引服务器引擎。设置查询引擎的页面并显示结果测试。

  下面来看看swynk.com 在左栏搜索工具中使用的代码。

创建表单

  这个表单非常简单。这是你的基本HTML表单,增加了一些隐含域,这些域将帮助驱动某些搜索引擎特性。

<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:\inetpub\www07120\index\">
<input type="submit" value="Find It!" name="Search"><a href="/sitesearch/searchhelp.asp"><font size=-1>Help</a></font>
</form>

  如果你将设置的表单与你在这个页面左边看到的搜索相比较,你就能发现域是从那里引入的,“找到了”按钮在哪里显示。以下是域的简要解释:

◆ mh是你想要返回的点击数的最大值。例如,你可能愿意将这个值设为200。将这个值设置得太高会给服务器带来不必要的负担。如果这个值太低就不能返回足够多的有意义的结果。要确定你的站点的最佳值需要花费一些脑筋(这种情况听起来有点象SQL中的"Set rowcount=", 不是吗)。

◆ sd是你想用做分类值的栏的名。在这种情况下,我们是在调出点击值栏--首先我们显示在搜索中点击最多的页面,然后按照降序排列结果设置(D代表降序)--同SQL中的"Order By..."一样,就是打开结果设置的列举。

◆ ct指向在哪里找到了将要使用的目录或索引数据库。这里有一点技巧。当你为某一给定站点打开索引服务器时,你就要指出索引数据库在什么位置。你必须要将这个值指向这个位置,否则索引服务器就会返回一个结果NO。(这是FROM数据库)

  随后,当然是调用将要取走这些值并查询服务器的ASP页面。注意,这是在使用表单处理中的GET类型-稍后将对此多做介绍,但是,只要你在使用我们的样本页面,就必须要用到它。
创建ASP页面

  在ASP页面上一切都变得非常酷。你用表单中的值来驱动对索引服务器进行查询的对象。

整个过程是这样的:

◆ 打开记录集。
◆ 用标准ADO 方法,一步步地走过记录集。

<%
"Create a Query object, initialize it using
"SetQueryFromURL, and dump the object state

"set the query object
Set objQuery = Server.CreateObject("ixsso.Query")

"get the query properties set from the 
"incoming URL (from the form GET operation)
objQuery.SetQueryFromURL(Request.QueryString)

"tell the object what columns to include
objquery.columns="filename,HitCount,vpath,DocTitle,characterization"

"open the recordset, causing the query to be
"executed
set rsQuery = objquery.createrecordset("nonsequential")

"now, if rsquery.eof is not TRUE, then we have results
"to show. If it IS TRUE, no results were found.

"get the page out for the user...
%>

<html>
<head>
</head>

<h1>Search Results</h1>
A maximum of 200 results will be returned, 20 hits per page will be shown. <br><br>
<%
if not rsquery.eof then
Response.Write rsquery.recordcount & " hit(s) were found. "
if rsquery.recordcount >30 then
Response.Write "You may want to refine your query."
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") & " hit(s)</font></p>"
end if
rowcount = rowcount - 1
rsquery.movenext
wend
Response.Write "<br><Br>"
%>

<% 
else
%>

<p>
对不起,没有发现纪录,如果要查询两个以上的词,使用and或or。
</p>

<%
end if
%>

</body>
</html>

  你需要做的第一件事就是建立对索引服务器对象的引用。这是通过使用server.creatobject方法来完成的:

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

增加属性

  现在objQuery 对象已经建立起来,在建立起引用它的记录集之前要进行配置。当然,你需要做的基本的事情之一就是建立查询--即在数据库中想要查找什么。这在引入的URL信息中进行--有一个方法是从URL中把所有内容提取出来,自动放在对象中:

时间: 2024-08-02 23:39:29

使用索引服务器的相关文章

使用索引服务器 - 创建ASP页面

创建|服务器|索引|页面 创建ASP页面 在ASP页面上一切都变得非常酷.你用表单中的值来驱动对索引服务器进行查询的对象. 整个过程是这样的: ◆ 打开记录集.◆ 用标准ADO 方法,一步步地走过记录集. <%"Create a Query object, initialize it using"SetQueryFromURL, and dump the object state "set the query objectSet objQuery = Server.Cr

使用索引服务器 - 增加属性

服务器|索引 增加属性 现在objQuery 对象已经建立起来,在建立起引用它的记录集之前要进行配置.当然,你需要做的基本的事情之一就是建立查询--即在数据库中想要查找什么.这在引入的URL信息中进行--有一个方法是从URL中把所有内容提取出来,自动放在对象中: objQuery.SetQueryFromURL(Request.QueryString) 这样会把所有不同的参数.属性及查询字符串信息都从URL中提取出来,并放在所属的对象中.在表单中作为隐含域建立起来的参数就这样被转化成用于搜索的属

使用索引服务器- 使用索引服务器的对象

使用索引服务器的对象 你可以象使用其它数据库一样使用索引服务器,也就是Index Server,它是IIS4中包含的内容索引引擎.你可以对它进行ADO调用并搜索你的站点,它为你提供了一个很好的web 搜索引擎. 它非常容易使用.你只需要声明对象,然后对引擎进行调用,然后引用你所请求的属性.栏和值. 那么,怎样做以上这些工作呢? 设置提示用户进行输入的表单页面,这个页面将被传递到索引服务器引擎.设置查询引擎的页面并显示结果测试. 下面来看看swynk.com 在左栏搜索工具中使用的代码. 创建表单

安全维护 IIS下 ASP 站点的高级技巧_服务器

一. 前言 (仅以此文感谢好友bigeagle.不是他,我可能不用这么担心win2000安全问题的.呵呵!) 人说,一朝被蛇咬,十年怕.....,就是这样.2000年初,当我终于摆脱winnt 4.0 server那可怕的补丁之旅,迈向win2000 server时.我终于可以比较放心我的服务器了.但随着SQL SERVER的补丁出现.我知道,与微软的补丁因缘又开始轮回了.但还好.win2000自动化的管理还是让我放心好多,而以前管理winnt后的失眠症状也逐渐消失了.偶尔还能见到我的"梦&qu

使用Python操作Elasticsearch数据索引的教程_python

Elasticsearch是一个分布式.Restful的搜索及分析服务器,Apache Solr一样,它也是基于Lucence的索引服务器,但我认为Elasticsearch对比Solr的优点在于:     轻量级:安装启动方便,下载文件之后一条命令就可以启动:     Schema free:可以向服务器提交任意结构的JSON对象,Solr中使用schema.xml指定了索引结构:     多索引文件支持:使用不同的index参数就能创建另一个索引文件,Solr中需要另行配置:     分布式

MS SQL Server 对文件内容进行全文检索的查询

server|全文检索   因为项目需要,需要对上传的文件内容进行查询.通过MSDN了解到Windows索引服务可以实现对文件的全文检索,并可以通过SQL Server进行查询.项目将这两者结合,实现对上传文件的全文检索的解决方案.方案概要:1.  改变文件存储时的文件名2.  配置索引服务器,并将索引服务器与MS SQL Server关联.3.  修改SQL语句,将进行全文查询语句的内容加入查询条件中 文件的存储方式:为了方便存储以及方便索引,我们将上传的文件存储到一个目录里面,为了保证上传的

安全维护 IIS asp 站点的高级技巧

iis|安全|高级|技巧|站点 一:前言 (仅以此文感谢好友bigeagle.不是他,我可能不用这么担心win2000安全问题的.呵呵!) 人说,一朝被蛇咬,十年怕......就是这样.2000年初,当我终于摆脱winnt 4.0 server那可怕的补 丁之旅,迈向win2000 server时.我终于可以比较放心我的服务器了.但随着sp1的补丁出现.我知道, 与微软的补丁因缘又开始轮回了.但还好.win2000自动化的管理还是让我放心好多,而以前管理winnt后 的失眠症状也逐渐消失了.偶尔

使用C#开发一个简单的P2P应用

p2p 本篇文章讨论了一种设计P2P网络应用程序的简单方法. 尽管有许多P2P网络不需要索引服务器或中央服务器,各客户机之间可以互相直接通讯,但下面的图1还是显示了P2P网络的基本工作原理,一般来说,P2P概念中包含一台中央索引服务器,这台服务器并不存储有任何文件,它只存储有登录到该网络上的所有用户的信息.客户端的IP地址以及用户提供的供共享的文件,客户机和服务器使用简单的命令通过报路连接进行通讯. 当客户端A想要查找P2P网络上其他客户端提供共享的文件时,系统会执行下面的操作: ·客户端A以自

ASP中FSO的神奇功能 - 使用FSO进行搜索

fso 作 者 : 甘冀平 你也许想:好,现在我知道如何写入文件了.但能做到更多一些吗?下面来试一试为web站点建立一个搜索功能. 建立搜索引擎的关键是递归.主要地,编写一段代码搜索目录下的文件,然后对所有的目录循环执行同样的代码.因为不能确定总共有多少个子目录,所以必须一遍又一遍地执行搜索代码,直到结束.递归调用非常好! 下面来创建搜索页面.假设已经建立了一个HTML表单,用户在其中输入一个搜索字符串. Dim objFolderDim strSearchTextDim objFSO strS