发表回复 
 
主题评价:
  • 1 次(票) - 平均星级: 5
  • 1
  • 2
  • 3
  • 4
  • 5
虎踞龙蟠BBS全文检索正式上线
2011年11月25日, 14:33 (这个帖子最后修改于: 2011年11月25日 16:52 by zcbenz.)
虎踞龙蟠BBS全文检索正式上线
[url]http://bbs.seu.edu.cn/s[/url]

整合花了不少时间,因为同时涉及到C和PHP,不过总算弄成了。时间跨度11年,帖子数量2000k。BBS系统用的kbs,典型的高校BBS。

源代码在:https://github.com/zcbenz/sbbs-search
查找这个用户的全部帖子
引用并回复
2011年11月25日, 14:40 (这个帖子最后修改于: 2011年11月25日 14:47 by hightman.)
RE: 虎踞龙蟠BBS全文检索正式上线
非常不错。我把此贴转到案例版面吧。
搜索结果界面还可以让专业美工再美化一下^-^

我自己在大学时很多时间也泡在 telnet bbs上呢,对这类BBS的感情很特殊,很多电脑技术也是在此基础上学习起来的。

我的论坛也开着,是 MapleBBS 的修改版 [url]telnet://bbs.twomice.net[/url]

---
此外我实际体验了一下,经常搜索速度偏慢,要 1.x 秒的响应时间,这个应该是可以优化的,因为您的界面上搜索条件较多,是不是有什么地方没有发挥索引的特性而采用了值比较?

还有一点,首页的热门搜索好像不是效果很好,可能要运营一段时间后再看看。将来我们也会推出搜索日志的维护工具。
查找这个用户的全部帖子
引用并回复
2011年11月25日, 14:52
RE: 虎踞龙蟠BBS全文检索正式上线
还有一个建议,BBS中很多 \x1b (即 ascii=27 ESC键)的控制符,应该在建索引时给预过滤可能更好。

\033[1;31;44m 这样的格式,用正则过滤掉就好了。此外,我看到了你默认搜索的是 2年内,所以可能效果上采用了 value compare (addRange)的所以效率比较慢。建议直接对时间字段建立年份索引

以下为示范代码
$doc->addTerm('time', date('Y', $chrono));
这样搜索的时候可以默认搜索当前 2年内的只要加上 AND (time:2011 OR time:2010) 效果可能会比 compare 快多了。

因为在测试时我选择任意时间反而经常比2年内反应快一些。
查找这个用户的全部帖子
引用并回复
2011年11月25日, 15:09
RE: 虎踞龙蟠BBS全文检索正式上线
谢谢!

因为刚上线不久,所以使用次数不多

现在搜索是按照年份分库的,每2年分一个库,默认的搜索两年内其实只是加载了最近的两个库。任意时间搜索就是把所有库加载了进去。偶尔出现的搜索慢确实有些奇怪
查找这个用户的全部帖子
引用并回复
2011年11月25日, 15:53 (这个帖子最后修改于: 2011年11月25日 15:53 by hightman.)
RE: 虎踞龙蟠BBS全文检索正式上线
原来是这样,分库倒是个不错的主意。自己根据条件决定要不要 addDb()

我担心的是通过 value 匹配才导致的慢,比如 addRange() 调用 或 setFacets()
查找这个用户的全部帖子
引用并回复
2011年11月25日, 16:55
RE: 虎踞龙蟠BBS全文检索正式上线
把全文检索的源代码托管到了github
[url]https://github.com/zcbenz/sbbs-search[/url]

对kbs的修改补丁还没有放上去,没太多时间去整理= =

很喜欢你们这样搞开源项目的公司。
查找这个用户的全部帖子
引用并回复
发表回复 


论坛跳转:


正在浏览该主题的用户: 1 个游客