• 当前位置:首页>>Seo专区>>搜索引擎技术>>为你的网站添加搜索引擎
  • 为你的网站添加搜索引擎
  • 下面,我将向你讲解如何在一个不大的网站中,使用File System Object对象来实现一个简单的搜索引擎。其实实现的原理很简单,通过文件系统对象,我们可以读出任何的权限范围内的文文的内容,把这些内容放到一个暂存变量中,通过和带搜索字符串的比较,来确定相应的文件是否是所需要的文件。其实呢,关于字符子串匹配的算法有很多,效率也很不一样,一个好的模式匹配算法实现起来很是有一些难度的。好在在VBScript中内置的字符子串的匹配函数InStr(),这样,最后的难点也告解决,程序实现起来就很容易了。

       在运行这个例程前,还需要注意的是: 

       1,目录search位于“c:inetpubwwwroot”下。

       2,所有需要检索的文件都在目录search下。

       3,在search的任何子目录中的文件将被忽略不予理睬。

       Ok,下面我们就来看看具体的程序实现。

       <%

       Dim objFolder

       Dim search_str

       Dim fso

       dim boolFileFound

       boolFileFound = "false"

       '为了使程序主题更为明确,在这儿假设要搜索的字符串为"test",并把它赋值给一个字符串变量。当然在真正的实现的时候,应该用一个表单来获取用户的输入。

       search_str = "test"

       'Search函数以文件系统对象中的文件夹子对像为参数,在这儿并没有实现对多层目录的检索,'其实要实现的话也不是很难,仅仅只是需要对这个文件夹对象的下层文件夹子对象进行嵌套调用就行了。

       Function Search(objFolder)

       Dim objSubFolder

       '在当前目录的每个文件中进行循环搜索

       For Each objFile in objFolder.Files

       Set TextStreamobj = fso.OpenTextFile(objFile.Path,1)

       '把文件的内容读入到一个字符变量中 

       strFileContents = TextStreamobj.ReadAll

       '如果搜索引擎在上面的那个字符串中找到了待搜索的关键字,就为相应的文件建立一个超链接 '并在搜索页中把这个超链接显示出来,其中应用的一个关键是使用VBScript中的一个名为'InStr函数,它用来判断一个字符串是否包含有指定的字符串

       file_path = "search" & "" & objfile.name

       If InStr(1, strFileContents, search_str, 1) then

       Response.Write " 

       """>" & objFile.Name & "


       boolFileFound = "True"

       End If

       TextStreamobj.Close

       Next

       End Function

       '建立文件系统对象和文件夹子对像

       Set fso = Server.CreateObject("Scripting.FileSystemObject")

       Set objFolder = fso.GetFolder(Server.MapPath("/search"))

       Search objFolder

       if bolFileFound = "false" then

       Response.write "对不起,你所需要查找的文件没有找到。"

       end if

       %>

       为了叙述的方便,在这篇文章中,假设所有要被搜索的文件都被存放在一个名为search的目录下,并且它的虚拟目录名也是search,而且没有子目录。我想这样的一个小程序段已经是能足够说明这个方法的实现机理了,通过简单的改造,就可以应用在多目录,多层次的文件系统中。相信你一定可以做出来的。怎么样,快快动手,给你的网站添加更多的魅力吧。
  • 上一篇:新一代搜索引擎揭秘
    下一篇:使用索引服务器