主题

  • 搜索引擎
  • 计算机科学与技术
  • 信息科学与技术

公示名称

  • frgg
  • frgg搜索引擎
  • 逸仙时空 BBS 搜索引擎
  • 逸仙时空 BBS 搜索
  • 逸仙时空 搜索引擎

内部名称

  • frgg
  • 逸仙时空 BBS 搜索引擎

更新信息

  • 更新者:ltaoist

  • 更新时间:2026年05月13日 11:38

始于 2009年左右

逸仙时空bbs作为SYSU这一高水平学府的重要信息交流平台, 但系统竟然还没有一个强大的搜索功能, 这与全国重点大学的的地位十分不符。

于是frgg本着整合信息资源, 方便站友查找文章的宗旨, 把``逸仙时空BBS搜索引擎设计与实现''作为本科毕业设计的题目,最终搞出了这个搜索引擎。

`frgg'的来历:作者在逸仙时空的ID为freestyler,有人简称为fr,后来有人[1]开玩笑戏称为frgg,本人觉得这个昵称还算亲切,就拿来命名这个东东了。

不过,本人此郑重声明:frgg与网络名人frjj木有一点关系. 谢谢.





参考文献
[1] 在 stupidmxx (傻の小小,76KG男) 大作中提到:

: 作为frgg的始作俑者,我深感荣幸啊
: 记得是在某个讨论id缩写的帖子里提出的,口黑口黑

哈希码

b54259ecf16ff1edc8ec53f3c59fc20a23a0f540

逸仙时空BBS作为校内的信息交流平台,同学们的网上家园,但系统却没有一个支持对文章进行全文检索的功能,本着整合信息资源,方便用户查找信息的目的出发,我们致力打造一个实用的,可扩展的针对逸仙时空 BBS 的小型搜索引擎。

BBS是英文Bullitin Board System的首字母简写,意译即为公告牌系统。一般地它以纯文字的方式出现,工作界面也像最古老的终端,就是一行行的字。

BBS是有不同的版面组成的,版也就是讨论区,每个版有不同的讨论主题。逸仙时空大约有 200 个讨论区,每个版面文章数目大约在几千到几万篇不等,大小为30-50M。版面文章更新较快,一个版面在一天内新发表文章可达上千,版主整理版面时,一些文章会被删除。

BBS 中除了版面文章以外,每个版面都对应着一个精华区,顾名思义,精华区里保存着本版的精华文章,这是由每个版面的版主从版面文章中整理收录进来的。

几点改进的方向:

1. 设计开发在 telnet 端的查询文章的功能,方便 telnet 登陆用户。

2. 可以针对文章的元信息建立索引,BBS 文章元信息格式固定(如作者,发表时间),提供高级个性化的搜索。

3. 改进中文分词,自动摘要的效果。对于分词,可以考虑给每个版面使用一个额外的词典,比如在电影版,可以使用一个电影名大全的词典。

4. 另外,对搜索结果进行缓存也是搜索引擎很重要的一个部分,特别是当访问量很大的时候。

5. 对快照文件进行压缩存储,节省空间。

## 参考文献

[1] V. Bush,“As We May Think”,Atlantic Monthly,vol. 176,pp. 101–108,1945
[2] 文本信息检索,http://zh.wikipedia.org/wiki/文本信息检索
[3] The first search engine, Archie, http:// www.isrl.illinois.edu/~chip/ projects/
timeline/1990archie.htm
[4] Web_Wanderer, http://en.wikipedia.org/wiki/World_Wide_Web_Wanderer
[5] W3 SEARCH ENGINES,http://vlib.iue.it/history/search/
[6] David Eichmann, The Repository Based Software Engineering Program,
Fifth Systems Reengineering Technology Workshop, Monterey, CA, Feb. 7-9, 1995
[7] 梁斌,走进搜索引擎,电子工业出版社,2007
[8] kxn,重负载 Telnet BBS 系统优化和维护经验谈
[9] Unix time, http://en.wikipedia.org/wiki/Unix_time
[10] Backus–Naur Form,http://en.wikipedia.org/wiki/Backus–Naur_form
[11] 关于 frgg, http://frgg.3322.org/about.html
[12] Brian W. Kernighan,Dennis M. Ritchie,The C Programming Language,Prentice
Hall,Inc.,1988.
[13] Python, http://www.python.org
[14] KISS principle, http://en.wikipedia.org/wiki/KISS_principle
[15] Diff, http://en.wikipedia.org/wiki/Diff
[16] libcurl - the multiprotocol file transfer library,http://curl.haxx.se/libcurl/
[17] w3c,HTML 4.01 Specification,http://www.w3.org/TR/html401/
[18] 逸仙时空,http://bbs.sysu.edu.cn/
[19] Page, Lawrence; Brin, Sergey; Motwani, Rajeev and Winograd, Terry,
The PageRank citation ranking: Bringing order to the Web, 1999
[20] ANSI escape code,http://en.wikipedia.org/wiki/ANSI_escape_code
[21] ANSI Escape sequences,http://ascii-table.com/ansi-escape-sequences.php
[22] The Porter Stemming Algorithm, http://tartarus.org/~martin/PorterStemmer/
[23] Christopher D. Manning,Prabhakar Raghavan and Hinrich Schütze,Introduction to Information Retrieval,Cambridge University Press. 2008
[24] 吴军,谈谈中文分词-----统计语言模型在中文处理中的一个应用, http://www.googlechinablog.com/2006/04/blog-post_10.html
[25] 吴军,统计语言模型,http://googlechinablog.com/2006/04/blog-post.html
[26] Markov Chain, http://en.wikipedia.org/wiki/Markov_chain
[27] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction to Algorithms, MIT Press, 2001
[28] pluskid,pymmseg-cpp, http://code.google.com/p/pymmseg-cpp/RMMSeg
[29] Chih-Hao Tsai,MMSEG: A Word Identification System for Mandarin Chinese Text Based on Two Variants of the Maximum Matching Algorithm, http://technology.chtsai.org/mmseg/
[30] Chen,K. J.,& Liu,S. H. , Word identification for Mandarin Chinese sentences,Nantes: COLING-92.
[31] Justin Zobel,Inverted Files for Text Search Engines,2006
[32] Berkeley DB, http://www.oracle.com/database/berkeley-db/index.html
[33] Elias gamma coding, http://en.wikipedia.org/wiki/Elias_gamma_coding
[34] DFS, http://en.wikipedia.org/wiki/Depth-first_search
[35] Google,http://www.google.com
[36] 百度,http://www.baidu.com
[37] 有道,http://www.youdao.com
[38] The Common Gateway Interface (CGI) Version 1.1,rfc3875
[39] 闫宏飞,测试集(Test Collection),2004

2009年4月

# 开发者freestyler在毕业论文中的表述

论文完成于2009年4月。

这个搜索引擎命名为 frgg。frgg 现在运行在一台校内的机器上(http://frgg.3322.org),每天给成百上千的用户提供查询服务,如图 2-1 所示。frgg 是在 GNU/Linux 环境下用 C 语言[12]开发完成的,部分自动管理脚本是用 Python 语言[13]编写,整个系统能运行在包括 GNU/Linux,FreeBSD 等类 Unix 操作系统之上。

frgg 的设计理念和原则是:
1. 保持简单(Keep It Simple, Stupid)
2. 分而治之(Divide and Conquer)

整个系统的工作流程。首先是后端离线完成构造索引部分,为用户搜索做好准备。构造好索引后,就可以为用户提供查询服务了。

由于frgg是一个站内搜索,所以下载这一环节是不需要的。下载系统是搜索引擎大厦的基础,搜索的数据均来自下载系统的工作。不过为了能使frgg能在 BBS 服务器以外的机器上提供服务,还是实现了简单的抓取文章功能。

第2个系统是分析系统,分析系统主要的工作包括信息抽取,网页消重,中文分词和 PageRank 计算等。

第3个系统称为"索引系统"。该系统就好像搜索引擎的数据大本营,在这里存储并索引了大量的文档。

第4个系统成为"查询系统",查询系统直接面对用户,在接收用户查询请求后,通过检索,排序和摘要提取等计算,将计算结果组织成搜索结果页面返回给用户。

该系统还考虑了访问控制列表、CGI程序、日志系统等。

在建立索引效率方面,开发者在一台工作中的普通 PC 机(AMD Sempron(tm)Processor LE-1200,900M内存,硬盘WD400BD)上,分别对三个讨论区CS(计算机系),Programming(编程技巧),Job(人才市场)的版面文章进行索引测试,这三个版面的文章数分别为 3623,4881,7624,大小分别是 27M,27M,48M,花费时间分别是 30.2秒,14.8,58.8 秒,建立的索引文件大小分别是 7.8M,5.6M,13M,平均索引文件大小是文章集合的 25%,无论从时间上效率上还是空间占用上,都是完全可接受的。

在查询效率方面,frgg计算了从获取用户查询到返回结果的时间,并把它显示在结果页面,一般是在0.2秒左右,可以说是查询结果被立即返回了,基本满足了用户的需求。

在查询效果方面,由于每个人对搜索的需求不同,即使是同一条查询,也会对查询结果有不同的偏好,因此不好简单得从返回的结果来看搜索的效果,开发者可以分析查询日志,如果用户点击的搜索结果越靠前,没有翻页,说明效果越好,反之,若用户需要不断修改查询词,或者翻下一页,说明搜索效果不理想。从查询日志来看,大部分查询的效果是不错的。另外,从用户在逸仙时空的回帖来看,普遍对 frgg 的评价反应是 cool! 看来大家对查询效果还是感到满意的。

开发者设计实现了这个搜索引擎,为逸仙时空提供了一个全文检索的功能,达到了整合信息资源,方便用户获取信息的目的,frgg 每天接收了成百上千的 BBS文章查询请求。

# 回忆frgg的运营(ltaoist)

2011~2015年间,因为运营人员的接续问题,frgg实际上为难得到校内学生的专门运维和管理。有一天突然frgg已经不能正常运行,可能是运营部署的问题。其后一直没有使得frgg恢复服务,在argo推出服务后,frgg事实上也不再得到校内运维的支持了。

有《逸仙时空 BBS 搜索引擎设计与实现》全文。这是一篇中山大学本科生的毕业设计论文。

有相关的演示文稿一份。

逸仙时空BBS搜索引擎设计与实现
该搜索引擎的开发者及实现者的论文,主题为该搜索引擎。

freestyler
freestyler为该搜索引擎的设计者和开发者。作为本科设计,指导老师为张治国副教授。

提到了stupidmxx
在about文件中,提到了stupidmxx,他可能为另一个知道该搜索引擎的相关故事的人。

里程碑

(缺失相关的信息)

后继项目

(缺失相关的信息)

标识

  1. sysu-cs-frgg-search

关键词

  1. 搜索引擎
  2. 整合信息资源
  3. 搜索文章
  4. 下载系统
  5. 分析系统
  6. 索引系统
  7. 查询系统
  8. 访问控制表
  9. cgi程序
  10. 解析 HTML
  11. 抓取文章
  12. 增量抓取
  13. 文本过滤
  14. 分词
  15. 倒排文件
  16. 索引算法
  17. 索引压缩
  18. 索引维护
  19. 搜索引擎快速
  20. 测试集