問:我需要將microsoft word文檔導(dǎo)入至sql server并索引這些文檔,以便在關(guān)系查詢中使用這些文檔。怎樣導(dǎo)入和索引文檔呢?
答:sql server允許您以多種方式導(dǎo)入word文檔。讓我們看看幾種最常用的方法。請注意,在將文檔導(dǎo)入至sql server之前,您需要創(chuàng)建一個image數(shù)據(jù)類型列,用于存放數(shù)據(jù)。然后,您可以使用textcopy.exe命令行工具將image文件讀入數(shù)據(jù)庫,從而完成文檔的導(dǎo)入操作。如果需要該工具的基本說明文檔,請?jiān)诿钐崾緺顟B(tài)下鍵入textcopy /?。將word文檔導(dǎo)入sql server的另一個方法是使用microsoft activex directory object(ado)stream接口編寫導(dǎo)入代碼。您可以在microsoft產(chǎn)品支持服務(wù)(pss)的通過使用ado stream對象訪問和修改sql server blob數(shù)據(jù)一文中找到示例代碼。
此外,您也可以將二進(jìn)制數(shù)據(jù)移到sql server中。有關(guān)這一方法的詳細(xì)說明,請參閱pss的使用ado檢索和更新sql server文本域一文。移動二進(jìn)制數(shù)據(jù)允許您將數(shù)據(jù)的一部分存放在數(shù)據(jù)庫中,這在需要控制數(shù)據(jù)格式時尤其有用。例如,如果只需要數(shù)據(jù)中1,000到1,010之間的字節(jié),導(dǎo)入二進(jìn)制數(shù)據(jù)的速度遠(yuǎn)遠(yuǎn)高于使用ado stream接口的速度,這是由于sql server從磁盤上檢索數(shù)據(jù)的量大為減少。人們通常使用這一技術(shù)來存儲位掩碼,用于表示應(yīng)用程序的開或關(guān)標(biāo)志位。
sql server 2000自帶了說明了如何移動二進(jìn)制數(shù)據(jù)的示例代碼。如需查看該代碼,只需在安裝有sql server 2000光盤上代碼示例的驅(qū)動器上選擇 /program files/microsoft sql server/80/tools/devtools/samples/ado路徑。展開該可執(zhí)行文件,在visual basic目錄下查找samples子目錄。在employee示例下,注意一下該代碼是如何使用filldatafields()函數(shù)的。
如需索引word文檔,sql server 7.0和sql server 2000都提供了全文搜索組件。該組件混合使用了多種技術(shù),用以索引大型文本和image列。在執(zhí)行全文搜索時,您需要指定image列所含的文件類型,以及從二進(jìn)制數(shù)據(jù)中析取信息所需的篩選(filter)。有關(guān)使用全文索引的詳細(xì)信息,請參閱sql server在線書籍中的相關(guān)主題,并閱讀david jones 2000年7月發(fā)表在sql server雜志網(wǎng)站上的名為構(gòu)建更好的搜索引擎一文。請注意,索引word文檔并不會自動生成包含文檔中關(guān)鍵字的一組關(guān)系表。但是,索引文件讓您將這些word文檔包含在您的搜索中。以下是從數(shù)據(jù)中析取關(guān)鍵字的可行方式:
使用ole自動處理從文檔中讀取用戶定義的關(guān)鍵字。在裝載該文檔時將這些關(guān)鍵字保存在關(guān)系表中。 
使用ole自動處理打開文檔并將其保存為文本(.txt)格式。為了析取重要的詞語,您可以使用自己的“詞語分析器”遍歷該文本文件。文字分析器查看文檔中的每個詞語,去除一些無用文字,并將每個唯一的詞語與其出現(xiàn)的次數(shù)一道存儲起來。 
在新的全文索引文檔中搜索特定的關(guān)鍵字,并將這些關(guān)鍵字輸入到關(guān)系表中。 
sql server 2000提供了多個強(qiáng)大的工具和接口,用于幫助用戶實(shí)現(xiàn)二進(jìn)制microsoft office文檔的快速裝載、搜索和檢索。
新聞熱點(diǎn)
疑難解答
圖片精選