大型网站之搜索系统

2016-11-18 16:22穆海明齐斌刘盼
艺术科技 2016年9期
关键词:组群字符串搜索引擎

穆海明 齐斌 刘盼

摘 要:平时经常上网查阅资料的我们,对搜索一词一定会有非常深刻的印象,本篇文章主要说明寻找信息的一种形式:搜索。搜索是相当广阔、挑战性十足,而且众所周知的领域,本文将会浅谈搜索系统。主要把讨论内容限制在搜索系统的组成、何时该执行搜索系统,以及某些设计搜索界面和显示搜索结果的实施建议。虽然对于小型网站的搜索功能,涉及不到这样深远的一个话题,但通过这样的一个探讨,有利于对大型网站的设计和搜索系统的全面了解。

关键词:搜索系统;网站设计

1 选择要搜索什么

假设我们已经选择了一种搜索引擎。哪些内容应该做索引以供搜索?显然,把搜索引擎指向网站,告诉搜索引擎把它找到的每一份文件的全部文字都索引起来,这是搜索系统最大的价值:可以无所不包,有能力很快就包含很多的内容。但是,把每样东西都做索引,不见得能满足用户。在庞大而复杂的网站环境中,会含有异质的子网站和数据库,建立搜索区域可以减少这些风马牛不相及的效果,让用户能够集中他们的搜索;搜索区域中应包含较具有同质性的内容。选择要让什么可以搜索,是不应该受限于只选择正确的搜索区域的。对一群文件或记录而言,每一文件和记录都有某种结构,无论是以HTML、XML或数据库字段表示。这些结构会储存内容组件:就是内容的元素,通常比文件小。结构中某些东西可以被搜索引擎使用,如作者姓名;而某些可以被忽略掉,如每底端的法律声明。最后我们需要对什么内容是“好的”有感觉,可能会以手动或其他机制为有价值的内容贴上标签。当用于搜索时,应该先把“好”的东西展现出来,例如,电子商务网站上大部分的用户都在搜索的产品,这些产品就能视为默认的搜索对象,然后此搜索可以再扩展到全站,作为一个修订过的搜索选项。

2 搜索算法

2.1 模式匹配算法

大部分搜索算法采用匹配的方法,也就是说,它们会比对用户的查询字符串与网站文件全文的索引,以寻找符合的文本字符串。找到吻合字符串时,来源文件就加进搜索集合中。所以,如果用户输入查询字符串“electric guitar”时,任何文件只要含有“electric guitar”,就会被检索出来。听起来相当简单,但是这个比对过程可以用很多不同方式运作,以产生不同的结果。有些算法传回很多的结果,而这些结果各有不同的相关性,有些算法只传回高质量的结果。变动范围的两个极端术语就是查全率和查准率。甚至还有公式可以计算他们:查全率=#检索出来的相关文件/#集合中的所有文件,查准率=#检索出来的相关文件/#集合中的相关文件。那么是否可以兼顾两者呢,可惜,鱼与熊掌不可兼得,考虑大到用户的利益,我们需要在两者间取得平衡,然后,根据选择一种搜索引擎,其算法是偏向查全率或者查准率视情况而定。

2.2 其他做法

当你有“好”文件在手上时,有些算法会把该文件转换得相当于一个查询(这种做法通常称为文件相似度)。例如“the”“is”“he”这些停用词会从好文件中抽掉,留下一组语义丰富的术语,足以代表文件即可。然后,这些术语会转换成一种查询字符串,而这种查询字符串可以让你检索出类似的结果。另一种做法展示那些已经使用相类似的元数据做过索引的结果。当然,一定还有其他的搜索算法,但重点是这些算法的主要目的是找出最好的文件集合作为搜索结果。但是,“最好”是相当主观的,而且必须了解什么人想在你的网站上找到什么。

3 分组结果

尽管我们可以用各种方式列出结果,却没有一种是完美的。像Google的混合式做法就很有希望,但是,通常必须介入搜索的设计工作,才可能拥有这样的工具。无论是哪种情况,我们的网站通常是越来越大,因此,搜索结果也会变大。同时,当用户放弃再看时,那些就只是理想中的。然而另一种替代排序和排名的做法看来是有希望的:依照某个共同的方面把结果聚集起来。当结果按类别和等级分组时,可以改善效果。我们怎么分组结果?可惜,明显的方式都没什么用:我们可以使用现有的元数据,诸如文件类型以及文件建立/修改日期,让我们把搜索结果分成几个组群。比较游泳的是从手工添加的元数据衍生出来的组群,诸如主题、用户、语言,以及产品家族。可惜,根据手工添加的做法会贵到吓人。有些自动化工具可以得到比较有用的主题类型组群,通常可以满足用户所需。这些组群为结果提供了情境,你可以选择你最感兴趣的目录,就能够浏览相当小的一群搜索集合,以及一群相同主题领域的文件(理想上)。这种做法很类似动态产生的搜索区域。

4 设计搜索界面

用户差异性大,搜索技术也花招百出,所以实在没有什么单一化的理想搜索界面。在web早起,很多搜索引擎都是在模仿在线图书馆目录和以CD-ROM为主的数据库中所采用的“传统”搜索引擎功能,这些传统系统多半提供给研究者、图书馆员及专业人士,而用户通常要懂得复杂语言才能使它们。在web的用户爆炸增长之后,全方位的搜索经验和专长下降到最低点,新生代的用户没那么多耐性。用户通常只会输入一两个术语,不会包含任何运算符,然后就按下“搜索”钮,并希望能得到最佳的结果。搜索引擎开发人员的做法是,把老式的花俏找事隐藏在“高级搜索”界面之中。由于以上理由,最终又会晃回老路,支持受到挫折的用户可以用更多的搜索语言,而且他们也愿意花时间学习复杂的搜索界面,并构造出查询字符串。但是就目前而言,假设最好的做法是让搜索界面尽可能简单,而这也是相当合理的。

参考文献:

[1] Peter Morville,Louis Rosenfeld(美).Web信息架构[M].陈建勋,译.电子工业出版社,2013.

[2] Thomas H,Cormen Charles E,Leiserson Ronald L,Rivest Clifford Stein(美).算法导论[M].殷建平,徐云,王刚,刘晓光,苏明,邹恒明,王宏志,译.机械工业出版社,2013.

作者简介:穆海明(1994—),男,天津人,沈阳理工大学学生。

齐斌(1994—),男,辽宁盘锦人,沈阳理工大学学生。

刘盼(1994—),男,山西运城人,沈阳理工大学学生。

猜你喜欢
组群字符串搜索引擎
73个传统建筑组群组团出道!带你活进从前的慢时光
“组群”“妙比”“知人”:小学语文古诗群文阅读的三个途径
QC新七大工具之五:矩阵图法
磁盘组群组及iSCSI Target设置
网络搜索引擎亟待规范
Nutch搜索引擎在网络舆情管控中的应用
基于Nutch的医疗搜索引擎的研究与开发
广告主与搜索引擎的双向博弈分析
一种新的基于对称性的字符串相似性处理算法
依据字符串匹配的中文分词模型研究