• 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 上看。

     

     


     

  • 相关阅读:
    react篇章-React State(状态)
    react篇章-React 组件-复合组件
    react篇章-React 组件-向组件传递参数
    react篇章-React 组件-ES6 class 来定义一个组件
    React篇章-React 组件
    复习常用算法_冒泡算法
    项目管理小结(如何做好一个百万级项目甚至千万级别的项目)
    AOP切点切面内容
    Spring 框架
    Spring MVC 框架
  • 原文地址:https://www.cnblogs.com/ocean/p/109282.html
Copyright © 2020-2023  润新知