3

イメージやドキュメントなどのファイルをアップロードできるWebアプリケーションを開発します。SQL Server 2008のPDF、Docx、xlsなどのドキュメントを保存する方法

  1. バイナリファイル
  2. 私は、ユーザーがアップロードされたドキュメントを検索できるようにしたい文書ファイル

:二つの部分に分け、このファイル。フルテキスト検索を使用しています。これら2つのファイルタイプに使用するデータタイプは何ですか?

答えて

2

バイナリデータを格納し、全文検索を使用してバイナリデータを解釈し、テキスト情報(.doc、.txt、.xls、.ppt、.htm)を抽出することができます。抽出されたテキストは索引付けされ、照会に使用できるようになります(CONTAINSキーワードを使用することを確認してください)。言うまでもなく、フルテキスト検索を有効にする必要があります。フルテキストインデックスを追加することで、システム(つまりそのサイズ)にどのように影響するかわかりません。クエリが実行されるときにインデックスが確実に使用されるように、実行計画を調べる必要があります。詳細については

はこれを見て:

http://technet.microsoft.com/en-us/library/ms142499(SQL.90).aspx

長所: をデータベース内のデータを格納する主な利点は、データの「自己完結型」になることです。すべてのデータがデータベースに格納されているため、データをバックアップしたり、あるデータベースサーバーから別のデータベースサーバーにデータを移動したり、データベースを複製したりすることはずっと簡単です。

また、ファイルのバージョン管理を有効にし、負荷分散されたWebファームを簡単にすることもできます。

短所: ここで読むことができます:https://dba.stackexchange.com/questions/3924/sql-server-2005-large-binary-storage。しかし、これはファイルを効率的に検索するために行う必要があります。

他にも、データベースにキーワードを格納し、それをファイル共有のファイルにリンクしている可能性があります。ここで

は、FileStreamをし、データベースを使用して体長約議論の記事です:http://blogs.msdn.com/b/manisblog/archive/2007/10/21/filestream-data-type-sql-server-2008.aspx

+0

varbinaryフィールドのpdfファイルからテキスト情報を抽出することができます:http://weblogs.asp.net/wallym/archive/2005/02/28/382060.aspx。しかし、このリンクはSQL Server 2005でこれを記述しています – mshirdel

+0

SQL Server 2008で同じことが可能であるはずです。私は彼らが同じものをサポートするのをやめたと確信しています – Baz1nga

+0

この方法はどれぐらい効果的ですか? ファイルが大きい可能性がある場合。 – mshirdel

0

まず、PDFをテキストに変換する必要があります。この種のライブラリ(例:PowerGREP)があります。次に、PDFファイルのテキストをデータベースに保存することをお勧めします。 「同じ行に」などのフルテキスト検索とロジックを実行する必要がある場合は、1行のテキストを1行に保存する必要があります。ファイル内のテキストを検索したいだけなら、必要に応じてSQLスキーマの構造を変更することができます。

docxファイルの場合、私はそれらをRTFに変換し、SQLに格納されている間にそれらを検索します。

イメージの場合、イメージ内のテキストを検索できるようにOCR(光学式文字認識)を実行するMicrosoft OneNoteというプログラムがあります。どのツールを使用するかは重要ではなく、OCRをサポートするだけです。

基本的に、バイナリファイルを直接読み取る方法がない場合は、ライブラリを使用してテキストに変換してから検索することを心配してください。

+0

私は、ファイルをアップロードする前に、RTFファイルへのdocxファイルを変換する必要がありますか、私のアプリケーションは、これを行うことを意味し、あなたのguidance.Doいただきありがとうございます? xls、txtなどの他の種類のファイルにはどのような推奨がありますか? – mshirdel

+0

docx形式でそれらを保持する方法があるかもしれませんが、方法はわかりません。 RTFにはタグとテキストだけが含まれているので、テキストを検索したい場合は、それを解析してすべてのタグを取り除くことができます。私はXLSの最良の方法についてはわかりません。以前は決してそれをしなかった。 – MacGyver

0

フルテキストインデックスは、次のデータ型のいずれかを使用する列のために作成することができます - CHAR、NCHAR、VARCHAR、NVARCHAR、TEXT 、NTEXT、VARBINARY、VARBINARY(MAX)、IMAGEおよびXMLを含む。

さらに、フルテキスト検索を使用するには、フルテキスト検索クエリを実行するテーブルのフルテキストインデックスを作成する必要があります。特定のSQL Serverテーブルまたはインデックス付きビューでは、最大1つのフルテキストインデックスを作成できます。

これらは約2品です:

SQL SERVER - 2008 - Creating Full Text Catalog and Full Text Search

Using Full Text Search in SQL Server 2008

関連する問題