本文提到的索引和查询服务可以在smthbbs,ythtbbs以及firebird等其他bbs系统上运行,
但在bbs端的查询界面只能在smthbbs系统上运行
欢迎使用高性能多功能的smthbbs系统
1. 选择一台精华区索引与查询服务器。参考水木的配置:Barton2500+ 1G DDR
也可以和bbs使用同一台服务器,但是要注意的是服务器上至少
要有500M可用内存(指实际可用内存而并非虚拟内存)
如果精华区超过1G,建议还是使用单独服务器
2. 在该服务器上建立/home/bbs目录,并且将精华区通过nfs放置在/home/bbs/0Announce
目录下。(如果不用单独索引服务器则可跳过这一步)
3. 展开smthbbs包,取出index/目录下所有文件放到索引服务器上
smthbbs包可以在
http://dev.smth.org/上获取
4. 根据精华区大小与内存大小修改文件中的常量定义。
====== newindex.c 16行 ========
#define MAX_WORD 2513257
#define MAX_FILE 15132573
#define POS_LIMIT 100000
#define SPLIT_NUM 300*1024*1024
====== newqueryd.c 25行 =======
#define MAX_WORD 2513257
#define MAX_FILE 15132573
#define POS_LIMIT 100000
水木清华bbs精华区总容量为近10G,可以按照精华区比例修改MAX_WORD与MAX_FILE
常数。水木清华bbs索引服务器的可用内存大概是800M,按照实际可用内存比例修改
SPLIT_NUM常数。POS_LIMIT建议不用修改。
如果索引程序运行时占用大小超过可用内存,则索引速度将大幅度的下降。如果
SPLIT_NUM常数过小,将会导致索引产生过多小文件,影响查询效率。
5. 在当前目录运行./updatelib.sh脚本。如果一切正常,则开始建立索引,索引完毕后
脚本自动启动查询服务。建议将脚本加入crontab,每周运行一次比较合适。
6. 索引时间与索引文件大小将由精华区容量所决定。水木清华bbs参考索引时间为4.5小时。
水木清华bbs参考索引文件总容量为4.6G。精华区总容量为近10G,文件总数目为172万。
索引单词数为106万
7. 索引完毕并且启动查询服务之后,修改bbs服务器上~bbs/sysconf.ini,加入一行:
QUERY_SERVER = "166.111.xxx.xxx"
IP地址是查询服务器的地址。然后编译service/,make install之后,在~bbs/menu.ini
加入:
@RunMBEM 0, 0, PERM_LOGINOK, "P@mod:service/libiquery.so#iquery_main", "P) 令狐冲搜索"
在主菜单下按"~"更新之后,即可以使用精华区全文索引了。
※ 来源:·BBS 水木清华站 smth.org·[FROM: 211.154.169.92]
FROM 211.154.169.92