解析Community Server仍然无法实现中文检索的原因

研究Community Server 2.0 几天了,这两天想在自己的网站内实现文章搜索,于是沙拉巴戟的照着CS2.0的搜索部分一边抄一边理解,最后恍然大悟!!

敢情CS2.0的搜索是无法支持中文的

原因很简单,仔细研究下CS2.0的代码部分大家就理解了,一开始我一直以为CS2.0采用了Sql Server 的全文检索,可是找来找去也没找到有关的代码,但是Post表里却一直有一个IsIndex字段用来判断是否索引过,郁闷了很久。

今天终于理解到,原来CS2.0是自己做索引的!!后台一直有一个线程在HttpApplication启动的时候启动,该线程负责处理些用页面处理比较费力的而且耗时的工作。索引Post的工作也是在这个线程中实现的,而索引工作是通过调用CommunityServer.Components.SearchBarrel.SearchJob类的IndexPosts函数来处理的。而涉及到的Word权重计算函数--Index函数,竟然采用空格来作为分词的手段,这个对于英文来说当然无可厚非了,但是拿到中文上这个算法就完全不行了!!断出来的都是句子~~~这个就是CS2.0为什么不支持中文的原因了!!唉~~

但是就这样放弃了吗?这两天我会就这个问题再仔细研究下的,如果谁有好的解决办法,一定要通知我哦

msn:csharpbird@hotmail.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值