SQL Server 中 ArcSDE XML 的参数
在 SDE_dbtune 表中设置的 XML 参数会影响数据库为发布到 ArcSDE XML 列的文档的存储和索引方式。在创建 XML 列之前,应检查 XML 参数的相关信息。
XML_IDX_FULLTEXT_CAT 和 XML_IDX_FULLTEXT_UPDATE_METHOD 参数会影响 SQL Server 全文目录。
如果 XML 列要存储的文档不是使用英语编写的,那么,除了要验证数据库中的语言设置外,还应检查 XML_IDX_FULLTEXT_LANGUAGE 参数的相关信息。如果需要更改这些 SDE_dbtune 参数的默认值,并且 XML 列与 ArcIMS 元数据服务相关联,则需要更改 DEFAULTS 关键字。请参阅本主题结尾的“XML_IDX_FULLTEXT_LANGUAGE”部分。
XML_IDX_FULLTEXT_CAT
XML_IDX_FULLTEXT_CAT 参数的值必须与您在数据库中创建的全文目录的名称一致。如果全文目录的名称发生变化,则必须更新 SDE_dbtune 值,以与其保持一致。以下提供了多重空间数据库模型和单一空间数据库模型的相关信息:
- 多重空间数据库模型
ArcSDE 的多空间数据库实例具有一个 ArcSDE 实例、一个名为 sde 的数据库,以及一个或多个包含与 sde 数据库相关的空间数据的数据库。如果您有一个 ArcSDE 的多空间数据库实例,则包含 ArcSDE XML 列的所有空间数据库本身必须具有全文目录。在此配置中,由于所有空间数据库都引用中央 SDE_dbtune 的设置,所以每个全文目录的名称必须与 SDE_dbtune 中 XML_IDX_FULLTEXT_CAT 参数的值一致。
- 单一空间数据库模型
如果您有一个 ArcSDE 的单空间数据库实例(其中每个 ArcSDE 实例均有一个 SQL Server 数据库),则每个数据库中的全文目录名称必须与该数据库中 XML_IDX_FULLTEXT_CAT 参数的值一致。每个空间数据库的全文目录均可具有不同的名称。
不同的 XML 列可与不同的全文目录关联。根据 Microsoft 的建议,对于包含经常更改的文档的 XML 列和包含不经常更改的文档的 XML 列,应使用不同的全文目录。
例如,如果一种 ArcIMS 元数据服务包含定期更新的文档,而另一种 ArcIMS 地名词典元数据服务包含极少更新的地名,则与这两种服务关联的 XML 列应该分别与不同的全文目录关联。在数据库中再创建一个全文目录,如 IMS_GAZETTEER_CAT。然后创建自定义的 DBTUNE 关键字,如 IMS_GAZETTEER;在此关键字中添加值为 IMS_GAZETTEER_CAT 的参数 XML_IDX_FULLTEXT_CAT。在创建地名词典服务时引用这个自定义的关键字。
XML_IDX_FULLTEXT_UPDATE_METHOD
需要根据以下因素来考虑数据库中全文目录的更新频率和方法:发布到 XML 列的文档的更改量和更改速度、可用于数据库的硬件资源,以及能够立即搜索新发布的文档是否很重要。
只有当数据库为文档建立了索引后(也就是说,更新了全文目录后),才能通过搜索来查找文档。SDE_dbtune 表中的 XML_IDX_FULLTEXT_UPDATE_METHOD 参数决定全文目录的更新方法和时间。
默认情况下,XML_IDX_FULLTEXT_UPDATE_METHOD 参数被设置为 CHANGE_TRACKING BACKGROUND。更改追踪意味着在更新全文目录时,将仅为自上次更新后所添加的文档建立索引。ESRI 建议您始终对全文目录采用更改追踪功能。BACKGROUND 指示数据库使用后台进程管理全文目录的更新时间。如果将此参数更改为 CHANGE_TRACKING MANUAL,则必须手动更新全文目录。
CHANGE_TRACKING BACKGROUND 通常可为数据库提供更好的整体性能。后台更新将受到以下因素的影响:数据库服务器上的可用资源、后台进程的优先级,以及对数据库执行的其他操作所产生的负载。手动更新在数据库中具有更高的优先级,因此速度可能会更快,但会影响在数据库中执行搜索和其他操作的性能。全文目录更新应该安排在数据库流量较低时(例如夜间)进行。最好使用 SQL Server 数据库的工具来安排全文目录的更新时间。
XML_IDX_FULLTEXT_LANGUAGE
如果元数据服务要存储的文档不是使用英语编写的,可能需要设置 SDE_dbtune 表中的 XML_IDX_FULLTEXT_LANGUAGE 参数。XML_IDX_FULLTEXT_LANGUAGE 参数用于设置对在全文目录中建立索引的列进行语言分析时使用的语言。此设置会影响字分离等特性以及要忽略的单词(例如,在英文中,将忽略 a 和 the 等冠词)。如果语言分析的语言设置不正确,并且采用日语等语言来编写发布的文档,而相应列的语言实际被设置为英语,那么将无法正确建立文本索引,并且在通过搜索功能来查找文档时会出现问题。
如果使用本地化版本的 SQL Server,则默认的全文语言选项将被设置为服务器的语言。例如,如果使用日语版的 SQL Server,则数据库、全文目录和要建立索引的列的语言都应设置为日语,因为默认的全文语言选项将被设置为日语。不需要更改 SDE_dbtune 表中 XML_IDX_FULLTEXT_LANGUAGE 参数的值。
如果使用国际版本的 SQL Server,则默认的全文语言选项将被设置为美国英语。即使特意将数据库和全文目录的语言设置为日语,对要建立索引的列进行语言分析时所用的语言也将默认为美国英语。
将 SDE_dbtune 表中的 XML_IDX_FULLTEXT_LANGUAGE 参数设置为与已发布文档的语言对应的值;该值用于设置相应列的语言。在安装过程中,安装向导曾引导您查询 sys.fulltext_languages 视图,以确定 SQL Server 版本所支持的语言。将 XML_IDX_FULLTEXT_LANGUAGE 参数设置为某种受支持语言的标识符或名称;例如,可以使用 1036 或法语来对采用该语言的 XML 文档中的文本建立索引。
如果将某个列设置为 SQL Server 国际版本中的特定语言,则可使用特定语言和英语发布和搜索文档。如果 XML 列包含使用多种语言或不受支持的语言编写的文档,则应将要建立索引的列的语言设置为中性;但是,使用中性设置搜索某些文本时可能会出现问题。
要更改通过 ArcGIS Server 企业级获得许可的 ArcSDE 地理数据库中的 XML_IDX_FULLTEXT_LANGUAGE 参数,请使用 sdedbtune 管理命令。有关使用 sdedbtune 命令的详细信息,请参阅《ArcSDE 管理命令参考》。
要更改通过 ArcGIS Server 工作组级获得许可的 ArcSDE 地理数据库中的 XML_IDX_FULLTEXT_LANGUAGE 参数,必须在安装 SQL Server Express 的计算机上安装和运行 WorkgroupXMLLanguage.exe。此可执行程序及其使用说明随 ArcIMS 一起提供。
有关语言分析和语言支持的详细信息,请参阅《SQL Server 联机丛书》的帮助主题。
XML_COLUMN_STORAGE
XML_COLUMN_STORAGE 参数会确定是以 ArcSDE XML 方式,还是以本地 SQL Server XML 方式创建 XML 列。SDE_dbtune 表的 DEFAULTS 配置关键字下的默认设置是 DB_XML,这表示将使用 SQL Server 本地 XML 类型。如果希望大多数 XML 列以 ArcSDE XML 类型创建,可以将此设置更改为 SDE_XML。
IMS_GAZETTEER 关键字下的 XML_COLUMN_STORAGE 的默认设置为 SDE_XML。加载地名词典数据时必需采用此默认设置,因为 ArcIMS 元数据服务和地名词典元数据服务只使用 ArcSDE XML。