问:我需要将microsoft word文档导入至sql server并索引这些文档,以便在关系查询中使用这些文档。怎样导入和索引文档呢?
答:sql server允许您以多种方式导入word文档。让我们看看几种最常用的方法。请注意,在将文档导入至sql server之前,您需要创建一个image数据类型列,用于存放数据。然后,您可以使用textcopy.exe命令行工具将image文件读入数据库,从而完成文档的导入操作。如果需要该工具的基本说明文档,请在命令提示状态下键入textcopy /?。将word文档导入sql server的另一个方法是使用microsoft activex directory object(ado)stream接口编写导入代码。您可以在microsoft产品支持服务(pss)的通过使用ado stream对象访问和修改sql server blob数据一文中找到示例代码。
此外,您也可以将二进制数据移到sql server中。有关这一方法的详细说明,请参阅pss的使用ado检索和更新sql server文本域一文。移动二进制数据允许您将数据的一部分存放在数据库中,这在需要控制数据格式时尤其有用。例如,如果只需要数据中1,000到1,010之间的字节,导入二进制数据的速度远远高于使用ado stream接口的速度,这是由于sql server从磁盘上检索数据的量大为减少。人们通常使用这一技术来存储位掩码,用于表示应用程序的开或关标志位。
sql server 2000自带了说明了如何移动二进制数据的示例代码。如需查看该代码,只需在安装有sql server 2000光盘上代码示例的驱动器上选择 /program files/microsoft sql server/80/tools/devtools/samples/ado路径。展开该可执行文件,在visual basic目录下查找samples子目录。在employee示例下,注意一下该代码是如何使用filldatafields()函数的。
如需索引word文档,sql server 7.0和sql server 2000都提供了全文搜索组件。该组件混合使用了多种技术,用以索引大型文本和image列。在执行全文搜索时,您需要指定image列所含的文件类型,以及从二进制数据中析取信息所需的筛选(filter)。有关使用全文索引的详细信息,请参阅sql server在线书籍中的相关主题,并阅读david jones 2000年7月发表在sql server杂志网站上的名为构建更好的搜索引擎一文。请注意,索引word文档并不会自动生成包含文档中关键字的一组关系表。但是,索引文件让您将这些word文档包含在您的搜索中。以下是从数据中析取关键字的可行方式:
使用ole自动处理从文档中读取用户定义的关键字。在装载该文档时将这些关键字保存在关系表中。
使用ole自动处理打开文档并将其保存为文本(.txt)格式。为了析取重要的词语,您可以使用自己的“词语分析器”遍历该文本文件。文字分析器查看文档中的每个词语,去除一些无用文字,并将每个唯一的词语与其出现的次数一道存储起来。
在新的全文索引文档中搜索特定的关键字,并将这些关键字输入到关系表中。
sql server 2000提供了多个强大的工具和接口,用于帮助用户实现二进制microsoft office文档的快速装载、搜索和检索。
新闻热点
疑难解答