代码之家  ›  专栏  ›  技术社区  ›  Sylvain

如何用SQL全文搜索索引小单词(3个字母)?

  •  3
  • Sylvain  · 技术社区  · 14 年前

    我有一个 Incident 具有值的一行的表 'out of office' Description 列。

    但是,以下查询不会返回该行。

    SELECT * FROM Incident
    WHERE CONTAINS( (Incident.Description), '"out*"' )
    

    单词“out”不在噪声文件中(我完全清除了噪声文件,并重新构建了索引)。

    是因为SQL全文搜索不索引小单词吗?有设置吗?有没有一个命令,我可以运行,看到底哪个噪声文件已用于建立索引?

    注意:我在使用SQL 2005。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Termit    14 年前

    处理噪声文件时,只有重新启动实例的Propper SQL Server全文搜索服务,才会考虑这些文件。

    我已经测试了你的场景,做了下面的工作,它工作了…


    1. 有噪声文件,其值为“out”
    2. 在其中插入值为“%out%”的记录
    3. 执行了您的select语句,并看到它们没有返回
    4. 修改Word文件并删除“out”项
    5. 已为我的实例重新启动SQL Server全文搜索服务
    6. 使用“alter full text catalog[nameofmycatalog]rebuild”重新生成全文目录
    7. 稍等(给全文服务一个机会做这项工作)
    8. 执行了select语句,并看到它们现在被返回

    希望这有帮助…

        2
  •  0
  •   Community Mr_and_Mrs_D    7 年前

    如果还没有,请尝试在清除噪声文件后重建索引,如中所述。 this answer 哪个链接到 helpful blog post .