NoSQL について学び始めましたが、RavenDB の良い例が見つかりません。Word、PDF、Excel などのバイナリ ドキュメントを RavenDB の添付ファイルとして追加し、そのドキュメントのコンテンツを検索する方法を誰か教えてもらえますか? その例はありますか?それは可能ですか?そのための MVC アプリケーションを作成するにはどうすればよいですか?
1 に答える
まず、NoSQL で「ドキュメント データベース」について話すときは、Word、PDF、Excel ドキュメントについて話しているのではないことを理解してください。通常、ドメイン エンティティからシリアル化された特定のデータを表す JSON 形式のドキュメントについて話します。RavenDB の大部分は、この種のデータの操作に重点を置いています。
ただし、実際に話している種類のドキュメントを操作することはできます。これは、組み込みではなく、アドオンの「バンドル」で実行されます。これは「インデックス付き添付ファイル バンドル」と呼ばれ、私が作成しました。ソースコードはこちらにあります。どのように使用できるかを示す単体テストもあります。たとえば、このテストを参照してください。検索結果の強調表示に興味がある場合は、このテストも参照してください。
バンドルは Windows IFiltersを使用して、バイナリ ドキュメントからテキストを抽出します。ローカル システムにインストールされている、使用する予定のドキュメント タイプに適した IFilter が必要です。PDF ファイルで多くのことを行う予定がある場合は、Foxit PDF IFilterを強くお勧めします。Adobe よりもはるかに優れており、高速です。Word および Excel ドキュメントのみを使用している場合は、Microsoft の Office IFilters が必要になる場合があります - x86またはx64のいずれかをダウンロードし、さらにService Packをダウンロードしてください。
適切な IFilter をインストールしたら、添付ファイルを RavenDB にアップロードするだけです。バンドルはアップロードをインターセプトし、IFilter を使用してコンテンツを抽出し、コンテンツを JSON ドキュメントに保存し、そのドキュメントにインデックスを付けて簡単に検索できるようにします。
Nuget からバンドルのコンパイル済みバージョンを入手することもできます。dll は、RavenDB サーバーのプラグイン ディレクトリに配置する必要があります。
現在、このバンドルを使用するアプリケーションまたは Web サイトの完全なエンド ツー エンドのサンプルはありません。また、このバンドルに関するドキュメントはありません。そのため、必ず単体テストを読んでください。
添付ファイルのインデックス作成や検索に関する情報ではなく、一般的な添付ファイルに関する情報のみが必要な場合は、RavenDB のドキュメントを参照してください。