2

現在、ファイル(PDF、DOC)をBLOBフィールドとしてデータベースに保存しています。ファイルの生のテキストを取得して、ヒットハイライトやその他の機能のために操作できるようにしたいと思います。

SQLまたは.netコードを使用して、ファイルを解析し、保存時に生のテキストを保存する簡単な方法を知っている人はいますか。アドビにはPDFをテキストに変換するfiltdumpユーティリティがあることがわかりました。Filtdumpはコマンドラインツールのようですが、ファイルストリームを使用する方法がわかりません。また、Officeドキュメントやその他のファイルタイプの抽出機能はどうなりますか?

-また-

サードパーティのフィルターを使用せずに、SQLフルテキストインデックスから生のテキストを引き出す方法はありますか?

Luceneなどのサードパーティツールを使用せずに.netおよびMSSqlソリューションを構築しようとしていることに注意してください

4

5 に答える 5

3

SQL Server からアプリに直接ストリーミングすることが絶対に必要でない場合、難しいのは PDF または DOC ファイル形式の解析です。

iTextSharp ライブラリを使用すると、PDF ファイルの内部にアクセスできます。

http://itextsharp.sourceforge.net/

Word ドキュメントを解析すると主張する商用製品を次に示します。

Aspose.Words

追加するために編集:

また、IFilter を追加して SQL Server フルテキスト インデックス作成を機能させる方法があるかどうかも尋ねていると思います。これは良いアイデアのように思えます。私はこれを自分で行ったことはありませんが、MS は明らかに長い間 Word フィルターをサポートしており、Adobe は (無料の) PDF フィルターをリリースしました。ここには多くの情報があります:

フィルター セントラル

SQL Server のフルテキスト インデックス作成を最適化する 10 の方法

SQL Server 全文検索: 言語機能- 少し古いですが、理解しやすいです。

于 2010-03-26T20:19:54.813 に答える
1

SQL Server全文検索機能は、IFiltersを使用してPDFまたはOfficeファイル形式からプレーンテキストを抽出します。サーバーにIFiltersをインストールできます。または、コードがSQL Serverと同じマシンで実行されている場合は、既にインストールされています。

.NETからIFiltersを使用する方法を示す記事は次のとおりです:http://www.codeproject.com/KB/cs/IFilter.aspx

于 2010-04-04T17:06:54.910 に答える
1

私はこれと同じ問題を抱えていました...アプリケーションに以下を追加して解決しました:

これらを使用してプレーン テキストを取得し、バイナリ データと一緒にデータベースに格納します。私は確かに専門家ではないので、これを行うためのより良い方法があるかもしれませんが、これは明らかにiFiltersによって読み取られない「クイック保存」2007年より前のWordドキュメント以外のすべてで機能します. そのエラーが発生した場合、ユーザーにドキュメントを再保存してもらうだけで、すべて正常に動作します。

サンプル コードが必要な場合はお知らせください...今すぐ投稿しますが、少し長いです。

于 2010-03-31T16:04:17.567 に答える
1

C# アプリケーションから .doc ファイルを開いてテキストとして保存し、テキストと .doc ドキュメントの両方をデータベースに入れることができます。

于 2010-03-26T20:32:19.767 に答える
1

SQL 2008 を使用している場合は、新しいFILESTREAM機能の使用を検討できます。

データは varbinary(max) 列に保存されますが、通常の Win32 ハンドルを介して生データにアクセスすることもできます。

ハンドルを取得する方法を示すサンプル コードを次に示します。

于 2010-03-30T09:24:10.330 に答える