可搜索的站点
当我还是一名好奇的本科生时,我参加了一个关于一种名为麦克斯韦妖的微小虚构生物的研讨会。这种聪明的生物可以通过热空气驱动引擎运转,但这只有在它知道所有热空气分子的位置和速度的情况下才有可能。本质上,妖精将知识转化为能量(严格来说,是将信息加上热量转化为功,或可用能量)。我认为妖精之所以深深地印在我的脑海中,是因为它以一种物理的方式展示了信息的价值,尤其是组织化信息的价值。
一个内容丰富的网站因其有价值的信息而吸引访问者。添加搜索引擎会使这种价值倍增。而且,如果您没有自己的内容丰富的网站怎么办?您是否有一些关于特定主题的收藏夹书签?使用 Webglimpse,您可以在您自己的网站上创建一个表单,允许用户搜索这些网站。现在,您研究和选择那些高质量、特定主题的网站书签的工作可以帮助吸引访问者访问您自己的网站。在本文中,我将介绍如何使用 Webglimpse 让用户搜索您选择的网站的内容,以及如何通过您的流量快速产生广告收入。
Webglimpse 是由几个部分组成的:一个用 Perl 编写的蜘蛛和管理器,以及 Glimpse,这是用 C 编写的核心索引/搜索算法。Glimpse 最早是由 Udi Manber 和 Sun Wu 这两位计算机科学教授创建的,他们想应用他们开发的新型搜索算法来查找模糊模式(并在 Sun Wu 还是 Manber 的学生时以 agrep 的形式发布)。Glimpse 最初是在 1993 年编写的,作为“一种搜索整个文件系统的工具”,对于那些曾经将文件或旧电子邮件消息错放在硬盘驱动器上某处的人来说非常有用。
几年后,Webglimpse 被封装在 Glimpse 周围,作为一种将强大的搜索和索引算法应用于任务的方法,不是搜索整个 Web,而是在单个网站上结合浏览和搜索。Webglimpse 由研究生 Pavel Klark 和 Michael Smith 编写,引入了搜索网页“邻域”的概念,即从该网页链接的一组页面。与此同时,Manber 和另一位学生 Burra Gopal 继续添加功能并改进 Glimpse,使其在新环境中发挥最佳作用。
我大约在这个时候出现在现场。我刚刚辞去了在 Artisoft 调试汇编网络代码的工作,以便创办自己的公司,从事互联网上信息的发现和分类工作。在 1996 年的早期 Web 中,Webglimpse 脱颖而出,成为最有前途的搜索工具。它刚刚诞生,仍然有些粗糙,因此当 Udi Manber 接受了我帮助该项目的提议时,我的第一份工作是重写安装程序。我越来越多地参与到 Webglimpse 中,添加功能和支持用户,并在 2000 年 1 月,亚利桑那大学授予我的公司独家许可来转售它。我认为,如果 Webglimpse 是开源的,我就无法将其作为我的主要关注点并维持生计,但我确实决定始终分发所有源代码,并对大多数非营利组织保持免费。因此,许多用户愿意提供反馈和补丁,我也能够向任何帮助该项目的人提供免费甚至可转售的许可证。
Webglimpse 已经存在多年,几乎可以在任何 Linux 版本和配置上运行。唯一真正的先决条件是配备 Perl 5.004 或更高版本的 Web 服务器以及对该服务器的 shell 访问权限。
有关安装的完整详细信息,请访问 Webglimpse 主页(请参阅在线资源),因此我在此仅提及一些提示。如果您发现您的系统上已安装 Webglimpse,请检查版本。大多数预装副本都是旧版本(v. 1.6,大约 1998 年),您很可能拥有升级权限。检查 Webglimpse 版本的最简单方法是运行搜索并查看结果页面的源代码。版本号位于搜索结果开头的注释行中。
在撰写本文时,Webglimpse 3.0 正在测试新的仅 FTP 安装。您可以尝试此版本,或者如果您有 SSH 访问您的服务器,则安装较旧的 2.0 版本。要走 SSH 路线,首先从站点下载试用版 tarball。按照下载页面顶部的安装说明进行操作,其中首先告诉您通过常用步骤编译和安装 glimpse
./configure make make install
然后通过运行其安装脚本来安装 Webglimpse
./wginstall
该脚本引导您完成有关安装目录和 cgi 脚本放置位置的常用选择。如果找到 Apache 配置文件,它还会尝试解析它,并向您确认服务器的关键域名和 DocumentRoot 设置。由于 Webglimpse 可以索引您硬盘驱动器上的本地文件并将它们映射到 URL,因此它需要知道如何将文件系统路径转换为 URL。这是一个关键点,在 Web 管理界面中,有一个专门用于测试 URL→文件和文件→URL 转换的屏幕,以确保其设置正确。
安装期间的其他设置与安全性相关。为了使存档管理器可以从 Web 运行,放置存档的目录需要是 Web 可写的。最安全的方法是 不 将其设置为世界可写,而是由 Web 用户(即您的 Web 服务器运行的用户名称)拥有。最常见的是 www 或 nobody。您可以通过检查进程列表来判断
ps aux | grep httpd
这将显示类似以下内容的若干行
nobody 873 0.1 0.5 16492 11416 ? S 18:03 0:00 /usr/local/apache2/bin/httpd nobody 874 0.0 0.5 16492 11416 ? S 18:03 0:00 /usr/local/apache2/bin/httpd nobody 875 0.0 0.5 16552 11620 ? S 18:03 0:00 /usr/local/apache2/bin/httpd
第一列是 Web 服务器运行的用户名称,在本例中为 nobody。现在您可以回答 wginstall 询问时的提示,如果您以有能力更改所有权的用户身份运行 wginstall,它会为您设置所有权。如果不是,请在安装完成后成为 root 并手动更改所有权。假设您安装到默认位置 /usr/local/wg2,您将运行
chown -R nobody /usr/local/wg2/archives
完成安装后,您将看到类似以下内容
******************************** Done with install! You may use http://mycoolserver.com/cgi-bin/wg2/wgarcmin.cgi
或
/usr/local/bin/wgcmd to configure archives at any time. (The web version currently has more features) Run wgcmd to create new archive now? [Y]:
一旦您熟悉了 Webglimpse,命令行工具对于管理多个存档或快速设置新存档非常方便。对于您的第一次,我建议使用 Web 版本。因此,您输入 N 表示不运行 wgcmd,而是打开浏览器中的 wgarcmin.cgi URL,然后输入您在安装期间选择的用户名和密码。这将您带到存档管理器,稍后将列出您已配置的所有存档。如果这是您第一次安装,则列表为空,因此请按“添加新存档”。现在您应该看到图 1 中显示的新存档屏幕。
在这里,您可以输入标题和描述,并可选择选择类别和语言。语言不会限制您可以包含的站点,但它会为搜索表单和结果页面选择模板和字符集。然后,您将单击底部的按钮之一
按目录索引:允许您索引 Web 服务器上特定目录中已有的文件。
按站点索引:允许您索引特定网站上的所有内容,无论是在您的服务器上还是在 Internet 上的其他位置。将此用于您自己服务器上的动态文件。
按树索引:允许您索引从特定起始页链接的所有内容,并可配置设置,以确定要跟踪的“跳数”或链接数以及跟踪哪些链接。
输入要索引的特定目录或 URL 并输入设置(例如最大页数)后,您将进入用于管理存档的主控制屏幕。在这里,您可以添加其他页面源以进行索引,以便一个存档可以组合本地文件、远程站点和多个站点上的远程页面树(如果需要)。图 2 显示了准备就绪的存档。一旦您按下“构建索引”按钮,蜘蛛就会出去收集远程页面,过滤掉 HTML 标签,然后运行 glimpseindex 以创建用于快速搜索的块级倒排索引。
最后,您可以通过单击文本链接“向您的网站添加搜索框或页面”来获取要包含在页面中的搜索表单。此链接将您带到一个页面,其中包含此存档的三个示例搜索表单的源代码,范围从裸输入框到支持正则表达式并将所有选项对用户可见的高级搜索表单。图 3 显示了简单版本的搜索表单,支持 全部、任何 或 精确短语 搜索。
您也可以通过按“搜索此存档”按钮或直接输入 Webglimpse cgi 的 URL (http://mycoolserver.com/cgi-bin/wg2/webglimpse.cgi?ID=2) 来获取相同的表单。通常,它们以存档的语言生成,但我们在此处以英语显示它们。
因此,现在您有了一个可搜索的存档,其中包含您选择的站点,这是您特定主题上最酷的链接集合。各地的用户都可以利用您的研究并使用您的服务器搜索您的高度优化的索引。如果您愿意,您现在可以投放广告以产生收入并支持您的网站。回到图 2 中显示的“管理存档”屏幕,选中标记为“可选 - 包含赞助商 SearchFeed 链接”的复选框。然后,单击“设置/管理帐户”,这是一个用于设置 Searchfeed.com 帐户的链接。Searchfeed.com 是一家在线广告和内容提供商公司,提供与用户搜索的关键字相关的赞助商搜索结果。设置好您的帐户后,只需输入 Searchfeed.com 提供的合作伙伴 ID 和跟踪 ID,然后选择应在搜索结果顶部显示多少个广告。设置非常简单。为了充分利用您的广告,您可以使用 Searchfeed.com 提供的在线工具套件来监控用户搜索的关键字、他们点击的广告以及您从每次点击中获得的收入。
无论您是否选择向搜索结果添加赞助商链接,您很可能都希望将它们包装在您网站的“皮肤”中 — 您自己的外观、感觉和导航菜单。要完成此操作,您需要编辑存档目录中名为 wgoutput.cfg 的文件。(存档目录的位置显示在“管理存档”屏幕上。)此文件包含 HTML 代码片段,这些代码片段位于单个搜索结果的上方、下方和之间。您还可以包含您自己的页眉和页脚文件,而不是键入 HTML。
在某些情况下,您可能还想自定义搜索结果的排名顺序。Webglimpse 与某些搜索引擎不同,它不声称知道特定页面对用户的“相关百分比”。相反,它允许您了解其如何计算搜索结果的相对相关性,如果您愿意,您可以实施您自己的自定义相关性排名公式。只需使用这些可用变量编辑同一存档目录中的 .wgrankhits.cfg 文件中的 Perl 代码片段
# Available variables are: # # $N # of times the word appears # $LineNo Where in the file the word appears # $TITLE # of matches in the TITLE tag # $FILE # of matches in the file path # $Days Date (how many days old the file is) # $META Total # of matches in any META tag # $LinkPop Link popularity in the site (how # many times other pages link to it) # %MetaHash Hash with the # of times the word # appears in each META tag, indexed # by the NAME= parameter. # $LinkString actual url of link # The following uncommented lines # are the actual ranking formulae that will be used # This is the default ranking, it gives high weight # to keywords in the title, plus some weight to # regular hits, link popularity and freshness $TITLE * 10 + $N + $LinkPop + 5/($Days + 1)
例如,通过使用 $LinkString 变量,您可以确保您网站的选定区域始终显示在其他区域之上。例如,在 Webglimpse 主页中,我们将此术语添加到默认公式中,以确保 /docs 目录中的页面首先出现在搜索结果中
+ ($LinkString =~ /\/docs\/)*1000
到现在为止,您可能已经了解了 Webglimpse 的优点和缺点:大量直接由用户配置的简洁功能,以及以某种临时方式组合的大量简洁功能。Webglimpse 具有(取决于您的观点)享受或遭受了大量调整,使其能够执行许多不同的任务。正在撰写本文时的下一个版本旨在更易于安装和维护,甚至为没有 shell 访问其服务器的用户提供仅 FTP 安装。尽管如此,您在使用当前版本时最可能遇到的常见问题如下
权限问题 — 当您有时从 Web 管理界面重新索引,有时从 shell 或从您的 crontab 重新索引时,会发生这些问题。您可以通过按“管理存档”屏幕中的“构建索引”按钮或运行脚本来重新索引任何存档./wgreindex从存档目录中。最好的办法是确定一种重新索引的方式,坚持下去,并使存档归将运行重新索引脚本的用户所有。
URL/文件转换问题 — 这些问题主要在 DocumentRoot 未正确指定时发生。您可以通过按主 Web 管理屏幕上的“测试路径转换”按钮来检查给定 URL 将转换为哪个文件,反之亦然。本地和远程域的所有适用设置都存储在此文件中:/usr/local/wg2/archives/wgsites.conf。您可以直接编辑 wgsites.conf,或通过按“管理存档”屏幕中的“编辑域配置”按钮进行更改。
有关更多故障排除提示,请访问文档和操作指南页面(请参阅资源)。
作者感谢 Udi Manber 信任我这些美妙的创作!我仍然在努力像它们应得的那样照顾它们!还要感谢 Sun Wu、Burra Gopal、Michael Smith 和 Pavel Klark,Webglimpse 和 Glimpse 的共同创建者,以及多年来提交错误报告、补丁、翻译和建议的所有用户。
本文的资源: /article/9021。
Golda Velez 是一位程序员和母亲,居住在亚利桑那州图森市。自 1997 年以来,她一直是 Webglimpse 的主要维护者。她还是 Internet WorkShop 的所有者和创始人,这是一家成立于 1995 年的 Web 托管和咨询公司。