sps中的全文搜索和英文版sqlserver搜索中文的方法
* 版权声明
* 此文章为ocean所有,版权归ocean所有,任何网站
*和 媒体转载必须包含此段声明,否则将视为侵权,作者将
* 保留一切权力。此声明为此文章中不可或缺的一部分。
* 作者网名:ocean
* 作者email:ocean@forever.net.cn
* 作者网站:http://www.oceanstudio.net
* http://sps.oceanstudio.net
* 作者blog:博客园,http://www.cnblogs.com/ocean
* 此文章发表时间:2005年2月25日
* 此文章源:http://www.cnblogs.com/ocean/archive/2005/02/25/109282.html
************************************************************************************
首先介绍一下Sharepoint中的搜索。Sharepoint的站点可能是一个门户站点,也可能仅仅是一个wss站点。sps的基础就是wss。但是搜索不太一样。我们先看一下sps和wss中使用的搜索服务。
在sps中,使用SharePointPSSearch服务,显示名称为Microsoft SharePointPS Search,这个服务的描述是“Microsoft SharePoint Portal Server Search 服务提供对门户和外部内容的索引和搜索。”。如果停掉此服务,在Portal中搜索的时候就会报错。一般会报错“搜索遇到了错误。如果问题继续存在,请与门户网站管理员联系。”。sps中的搜索非常强大,因为除了搜索站点的内容本身之外,还可以搜索其它站点的内容,也即可以爬网。比如大家到 http://www.oceanstudio.net 上搜索一下,就会发现能够搜到http://www.oceanstudio.net/sps 的内容,同时还能搜http://www.cnblogs.com/ocean 的内容。搜索的站点可以是任何站点而不仅仅是wss站点。
对于wss站点就不用了,wss使用了sql server的全文检索服务,也即MSSEARCH服务,显示名称为Microsoft Search服务,这个服务的描述是“基于结构化和半结构化数据的内容以及属性生成全文索引,以便可以对数据进行快速的单词搜索”。如果停掉了这个服务,你会发现wss的搜索不会报错,但是却搜不到任何内容了。
要启用wss的搜索服务,首先需要确定Microsoft Search这个服务已经启动,同时需要在wss的后台管理中,启用全文搜索。如下图:
然后就可以进行搜索了。
sps的搜索设置就比较多了,我这里就不再介绍了,主要都是和爬网相关的。
我的网站开始的时候,没法搜索中文,后来才发现不能搜索中文,最后才发现原来数据库采用的英文版sql server服务器。那么怎么办呢。最初是考虑更改排序规则。
采用“alter database 海洋工作室1_SITE collate Chinese_PRC_CI_AS”语句更改排序规则,发现报错:
Server: Msg 5075, Level 16, State 1, Line 1 The object 'CK_CatDef' is dependent on database collation.
Server: Msg 5075, Level 16, State 1, Line 1 The object 'CK_CatJoint_Title' is dependent on database collation.
Server: Msg 5075, Level 16, State 1, Line 1 The object 'CK_CatKeyword_Keyword' is dependent on database collation.
Server: Msg 5075, Level 16, State 1, Line 1 The column 'Docs.LTCheckoutUserId' is dependent on database collation.
Server: Msg 5075, Level 16, State 1, Line 1 The column 'Docs.Extension' is dependent on database collation.
Server: Msg 5075, Level 16, State 1, Line 1 The object 'CK_CatPath_Depth' is dependent on database collation.
Server: Msg 5072, Level 16, State 1, Line 1 ALTER DATABASE failed. The default collation of database '海洋工作室1_SITE' cannot be set to Chinese_PRC_CI_AS.
也即没法更改。后来今天没办法,就更改了每个有全文索引表的分词语言。在wss数据库中有4个表,分别是userinfo,userdata,lists,docs表上有全文索引,其中userdata表是最重要的表,里面有几十个字段都有全文索引。所以我改了一中午,终于都改完了。
第一步,在tables上点击右键,选择编辑全文索引。
第二步,将索引的语言全部改成中文。
第三步:在全文目录中重新填充。填充可能需要一段时间,根据你要索引的内容多少而定,完毕后就可以搜索中文了。
sps搜索的例子可以到 http://www.oceanstudio.net 上看。
wss搜索的例子可以到 http://sps.oceanstudio.net 上看。