如何编辑同义词库文件(全文搜索)

可通过编辑给定语言的同义词库文件(XML 文件)来配置该语言的同义词库。在安装过程中,将安装空的同义词库文件,它们仅包含 <xml> 容器和注释掉的示例 <thesaurus> 元素。为了使查找同义词的全文搜索查询正常工作,必须创建一个定义一组同义词的实际 <thesaurus> 元素。可以定义两种形式的同义词,即扩展集和替换集。有关同义词库文件的位置和结构的信息,请参阅同义词库配置

同义词库文件的限制

下面的限制适用于编辑同义词库文件:

  • 只有系统管理员能够更新、修改或删除同义词库文件。

  • 使用文本编辑器工具编辑同义词库文件时,必须以 Unicode 格式保存这些文件,并且必须指定字节顺序标记。

  • 同义词库项不能为空或断字为空字符串。

  • 同义词库文件中的短语长度不得超过 512 个字符。

  • 同义词库不能在扩展集的 <sub> 项和替换集的 <pat> 元素中包含任何重复项。

针对同义词库文件的建议

建议同义词库文件中的项不要包含任何特殊字符。这是因为,断字符在遇到特殊字符时会出现不确定的行为。如果同义词库项包含任何特殊字符,在全文查询中与该项一起使用的断字符会出现不确定的行为。

建议 <sub> 项不要包含任何非索引字,因为全文索引中将省略非索引字。查询将进行扩展以包含同义词库文件中的 <sub> 项,如果 <sub> 项包含非索引字,则会不必要地增加查询大小。

编辑同义词库文件

  1. 在记事本中打开同义词库文件。

  2. 如果第一次编辑同义词库文件,请分别删除位于文件开头和末尾的以下注释行:

    <!--Commented out
    -->
    
  3. 添加、修改或删除替换集,或扩展集。有关详细信息,请参阅同义词库配置

  4. 保存文件并关闭记事本。

  5. 使用 sp_fulltext_load_thesaurus_file 将同义词库文件内容加载到 tempdb 中,并指定对应于同义词库文件语言的本地标识符 (LCID)。例如,对于英语同义词库文件 tsenu.xml,对应的 LCID 为 1033。

    USE AdventureWorks ;
    EXEC sys.sp_fulltext_load_thesaurus_file 1033;
    GO