zoukankan      html  css  js  c++  java
  • 创建全文索引----SQLserver

      1、启动 Microsoft Search 服务
      开始菜单-->SQL程序组-->服务管理器-->下拉筐-->Microsoft Search 服务-->启动它。
      2、 ..Microsoft SQL ServerMSSQLFTDATASQLServerConfig目录里建一个非空noise.chs文件
      非空noise.chs文件,也有人说是空的noise.chs文件,但我每次都往里写几个没用的字母。
      3、建立环境
      打开查询分析器-->执行下列脚本:

    --检查数据库pubs是否支持全文索引,如果不支持
    --则使用sp_fulltext_database 打开该功能
    if(select databaseproperty('DeviceInfoPortal','isfulltextenabled'))=0
    execute sp_fulltext_database 'enable'

    --建立全文目录FT_PUBS
    execute sp_fulltext_catalog 'FT_DeviceInfoPortal','create'

    --创建唯一索引
    create unique clustered index Idx_files_id on dbo.files(fileid)

    --为title表建立全文索引数据元
    execute sp_fulltext_table 'files','create','FT_DeviceInfoPortal','Idx_files_id'

    --设置全文索引列名
    --execute sp_fulltext_column 'files','content','add'
    execute sp_fulltext_column @tabname = 'files',@colname = 'content',@action = 'add',@type_colname = 'type';

    --execute sp_fulltext_column 'files','content','drop'

    --建立全文索引
    --activate,是激活表的全文检索能力,也就是在全文目录中注册该表
    execute sp_fulltext_table 'files','activate'

    --填充全文索引目录
    execute sp_fulltext_catalog 'FT_DeviceInfoPortal','start_full'
    go

    --在您可以使用操作系统筛选器、断字符和词干分析器之前,您必须将它们加载到服务器实例中
    execute sp_fulltext_service @action='load_os_resources', @value=1;

    --检查全文目录填充情况
    While fulltextcatalogproperty('FT_DeviceInfoPortal','populateStatus')<>0
    begin

    --如果全文目录正处于填充状态,则等待30秒后再检测一次
    waitfor delay '0:0:30'
    end 
    --全文目录填充完成后,即可使用全文目录检索

    select *
    from files
    where CONTAINS(*,'运行记录')
    or CONTAINS(*,'Understanding')
    or CONTAINS(*,'全文搜索')

    or CONTAINS(*,'出厂日期')

      结果如下:

      全文索引中的几个问题:
      1. 搜索时出现错误:
      服务器: 消息 7619,级别 16,状态 1,行 2
      查询子句只包含被忽略的词
      这种情况修改 MssqlFtdataSqlserverConfig 下对应语言的干扰词列表文件

      2. 修改了干扰词文件,查询中文时仍然出现上述问题

      a. 首先检查你的SQL有没有安装最新的补丁,检查的方法是在查询分析器中运行:

      select @@version
      如果出来的版本号是8.00.760以下,则表明你未安装sp3的补丁,要装上。
      注意下载后,执行的时候是解压,要在解压后的目录中执行setup.bat才是真正的安装。

      b. 配置全文索引时,单词断字符选择"中文(中国)"
      c. Noise.chs文件中至少有一个单词,例如:?

      d. 如果在全文检索时,你能正常修改干扰词文件,说明你的全文检索没有使用上这个文件。

      如果你配置的全文检索应该要用到这个文件,那就在

      “企业管理器--展开你的数据库--右键全文目录--重建全部全文目录”

      3. 表中的数据改变后,检索不到。
      方法1. 右键你的表--全文索引表--启用增量填充
      方法2. 右键你的表--全文索引表--更改跟踪,这样以后的修改会自动填充(有一定延迟)

      4. SQL Server 2000以上才支持对image列的全文检索。

  • 相关阅读:
    eclipse启动时发生的Initializing Java Tooling错误
    2017最新xcode打包APP详细图文
    系统安全:安装系统时要做的优化
    逻辑卷扩容
    记一次装13行为
    网络边界安全:防火墙双机热备之上下行接交换机
    解决故障的终极绝招:重装重启之dell R620装系统
    态势感知
    怪力乱神
    远程给客户配置防火墙的反思
  • 原文地址:https://www.cnblogs.com/lyugeyi1030/p/8408928.html
Copyright © 2011-2022 走看看