分享
 
 
 

《CSDN搜帖引擎设计》

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

《CSDN搜帖引擎设计》

一、总体思路:

通过对发帖、结帖以及搜帖流程的改进,建立帖子与搜索关键字之间的关联,大幅提高利用关键词搜索帖子的速度和性能。

二、具体流程:

1、发帖:

从关键词列表中选择一个或多个关键词或者自己输入关键词。用户输入的关键词将被记入关键词列表。如果关键词列表很长的话,也可以先用模糊查找的方式查询关键词。关键词按照被查询到的次数排序,被查次数最多的列在前面。可以考虑用Applet的后台线程装载关键字列表,以免关键字列表过长,影响界面响应。关键词也可按照板块组织,各个板块拥有各自的关键字列表,这样每次列出的关键字数量就会大大减少。

2、回复:

回复者可以给帖子捐赠可用分,供结帖时分配,也可以给帖主捐赠可用分,以奖励其提出的典型问题。

可以可针对帖主的问题回复,也可针对网友的回复进行回复。回复的组织方式为任意级别的树形结构。

3、结帖:

结帖期限为从发帖之日起一个月,或者从第一次回复起一个月。超期未结的帖子自动转为超期状态,可由他人代为结帖。代他人结帖者可以获得10可用分。

帖主结帖时可以根据情况为帖子增加可分配的分数。结帖时可以分配的总分数为:帖主在发帖时所设定的分数 + 回复者捐赠的分数 + 帖主在结帖时增加的分数。

帖主还可以在结帖时根据情况增加帖子的关联关键字。但每个帖子的关联关键字数量不得超过5个。

4、搜索:

用户可以在关键词列表中选择关键词进行搜索,也可以用模糊查找的方式确定要使用的关键词。关键词按照被帖子引用的次数排序,被引用次数最多的列在前面。每次搜索可以使用1~5个关键词。如果关键字列表种没有合适的关键字,搜索者还可以输入自定义的搜索关键词进行搜索。 对于用户输入的自定义关键词,采用字符串匹配的方式针对帖子标题和帖主问题进行搜索。用户输入的关键词将被加入关键词列表。

提供搜索结果批量保存的功能,可以将搜索结果批量保存于本地,便于随时查找。

按照帖子被阅读的次数,给结帖人加分(帖主或代帖主结帖的人),每100次加1可用分。

数据库结构示例:

关键字 <PK>

帖子ID列表 数组

被搜索次数

被引用次数

三、其他建议:

1、 关于界面:

帖子浏览界面:提供多种帖子浏览界面供用户选择,并可设置为用户的默认浏览方式。帖子的组织形式为任意级别的树形结构,可以针对帖主的问题进行回复,也可以针对前面的回复进行回复。可以按照树形列表的方式察看帖子,也可以按照时间顺序列表的方式察看帖子。如果是按照时间顺序列表的方式察看帖子,就在回复部分增加指向父一级回复的超级链接,使浏览者可以顺利地找到上一级回复。可以设定每页显示的回复数量为20、50、全部。

结帖界面:树形组织结构。每条回复只占一行。回复前面是给分框。鼠标悬停在某一条回复上时,在鼠标下面显示相应的回复内容(用层实现),且给分框获得输入焦点。这样结帖者只需一只手移动鼠标,一只手按动数字键即可迅速结帖。

搜索结果列表:每帖占一行。每行前面一个CheckBox。鼠标悬停在某一行时,在鼠标下显示帖主的问题(用层实现)。用户可以批量保存CheckBox被选中的帖子。

2、关于帖子存储:

由于帖子数量巨大,给存储和查询带来巨大困难,可以考虑对帖子内容进行分割精简,用数据的冗余换来性能的提升。

1)在关键字与帖子的关联列表中存储帖子标题和帖主的提问问题,这样在列举搜索结果或针对用户自定义的关键词进行搜索的时候就不需要读取全部的帖子内容了。这里的读取是指数据库的磁盘IO,而不是程序的读取,如果帖子内容是存储在一起的,即使SQL语句只访问其中几列,数据库也得把整行内容读入内存。

2)已结的帖子存为两份,一份为精简帖,另一份为原始帖。结帖时,在每一条回复的前面显示一个CheckBox,被结帖人选中的回复就是精简帖的组成部分。只有选中的回复,即精简帖的组成部分,才能获得帖子分数,但并不是精简帖内所有的回复都要获得分数。此功能可以用如下的界面流程实现:每条回复前面为一个CheckBox和一个给分用的EditBox,EditBox默认为Unable,只有在CheckBox被选中时,EditBox才变为Enable。

精简帖浏览界面上有指向原始帖的超级链接,用户只能通过精简帖上的超级链接访问原始帖。由于大大降低了原始帖被访问的概率,可以考虑将原始帖存储在后台的数据仓库中,用单独的数据库存储。

数据库结构示例:

关键字 <PK>

帖子ID列表 数组

被搜索次数

被引用次数

帖子ID <PK>

标题

帖主问题

帖子ID <PK>

标题

帖主问题

精简帖全文

帖子ID <PK>

标题

帖主问题

原始帖全文

发帖时,分配帖子ID,记录帖子标题,问题,分数等。回复时,改写原始帖中的帖子内容。结帖时,生成精简帖,存储在精简帖列表中,并将原始帖转移至数据仓库中。

3、关于可用分:

新用户注册时,分配少量的可用分。用户每登录一次CSDN,获得1可用分。

有专门的界面列举超期待结帖的帖子列表,用户可以代他人结帖,赚取可用分,分值为10可用分 / 帖。帖子回复者可以向发帖者(帖主)捐献可用分,以资鼓励。

帖子整理者可以依据帖子被阅读的次数获得1可用分 / 100次。为避免结帖者用此方法为自己赚分,可以用Session做限制,即在同一Session中多次浏览某一个帖子只算作浏览一次。

八风不动 2004-07-25

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有