• Sqlserver2008及以上使用全文索引排除干扰词 (转载)


    关于SQLServer2008全文索引干扰词
    使用SQL SERVER 2008全文索引
    进行搜索 contains(Keywords, '"xx of xx*"') (注意是后面有包含"*"号的查询),由于包含了类似"of","and","or"等这类默认的全文索引干扰词,导致查询不到结果。
    可以按如下方法解决:
    1.自定自己的干扰词库

    可以按如下方法解决:1.自定自己的干扰词库
    
    --创建全文非索引字表(干扰词表)
    CREATE FULLTEXT STOPLIST T_FULLTEXT_STOPLIST_TableName --全文非索引字表表名
    FROM SYSTEM STOPLIST; --从系统全文非索引字表导入
    
    --删除我们不需要的干扰词,如"of"字
    ALTER FULLTEXT STOPLIST [T_FULLTEXT_STOPLIST_TableName]
    DROP 'of' LANGUAGE 'Simplified Chinese';
    
    --增加我们需要的干扰词,如"of"字
    ALTER FULLTEXT STOPLIST [T_FULLTEXT_STOPLIST_TableName]
    ADD 'of' LANGUAGE 'Simplified Chinese';
    由于此方法有点麻烦,所以我就没去具体测试了。

    2.直接关闭干扰词功能

    -设置关闭全文索引干扰词
    ALTER FULLTEXT INDEX ON [TableName] SET stoplist OFF
    --如果要再开启,可以这样设置开启全文索引干扰词
    ALTER FULLTEXT INDEX ON [TableName] SET stoplist SYSTEM
    
    如果执行以上语句出现了如下错误:
    'stoplist' 附近有语法错误。
    或
    Incorrect syntax near 'STOPLIST'.
    
    那是因为SQL Server兼容级别的问题,解决方法为,执行以下语句:
    --改变SQL兼容性版本80 = SQL Server 2000, 90 = SQL Server 2005, 100 = SQL Server 2008...
    ALTER DATABASE DatabaseName SET COMPATIBILITY_LEVEL = 100
    在网上查了很多关于全文索引查不到数据的问题。
    上面说是干扰词的问题,需要修改相应的文件,但是SQL2008的文件又和SQL2005版本的位置什么的不一样,需要用SQL语句进行修改,但是用SQL语句提示没有权限,或干脆找不到这些文件,改了也不管用等,所以SQL2008干扰词的问题很令人头疼。而且很难找到一个好的解决办法。
     
    在这里,有一个新的办法,可以解决或避开这些麻烦的问题。
     
    关键:你所建立的全文索引,如果是手动建立的,没有给他指定干扰词表,那么他就会自动的指定系统的干扰词表。
     
    所以,要手动建立一个属于自己的干扰词表,不用系统的了,因为上面提到过,它很麻烦。
     
    语句:
    CREATE FULLTEXT STOPLIST MyFsyTable --全文非索引字表表名(也就是干扰词表)
    FROM SYSTEM STOPLIST; --从系统全文非索引字表导入
     
    --下面是删除你想删除的干扰词
    ALTER FULLTEXT STOPLIST MyFsyTable 
    DROP '' LANGUAGE 'Simplified Chinese';
     
    最后,在你建立的表上右键-全文索引-属性-常规-全文索引非索引字表(也就是干扰词表)-下拉框选择你刚才建立的干扰词表
     
    好了,如果你的全文索引是自动填充的,等待它填充完毕,或者手工重新完全填充。
     
    最后,查询,大功告成了!

    原文链接

  • 相关阅读:
    用于创建和管理 Azure 虚拟机的常用 PowerShell 命令
    在 Azure Resource Manager 中为虚拟机设置密钥保管库
    使用 Azure 资源管理器向 Windows VM 应用策略
    Azure 门户中基于角色的访问控制入门
    为 Azure Resource Manager 中的虚拟机设置 WinRM 访问权限
    如何加密 Windows VM 上的虚拟磁盘
    适用于 Windows VM 的 Azure 示例基础结构演练
    Azure 中虚拟机的备份和还原选项
    1.1 基本算法和记号
    tomcat的class加载的优先顺序
  • 原文地址:https://www.cnblogs.com/OpenCoder/p/10088399.html
Copyright © 2020-2023  润新知