sps中的全文搜索和英文版sqlserver搜索中文的方法

***********************************************************************************
*                  版权声明                        
*         此文章为ocean所有,版权归ocean所有,任何网站
*和 媒体转载必须包含此段声明,否则将视为侵权,作者将 
* 保留一切权力。此声明为此文章中不可或缺的一部分。 
* 作者网名:ocean                                  
* 作者email:ocean@forever.net.cn                  
* 作者网站:http://www.oceanstudio.net             
*                     http://sps.oceanstudio.net             
* 作者blog:博客园,http://www.cnblogs.com/ocean  
*                 ocean's blog,http://www.oceanstudio.net/sps/blog 
* 此文章发表时间: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 上看。

 

 


 

posted on 2005-02-25 18:14  ocean  阅读(5932)  评论(7编辑  收藏  举报

导航