web-dev-qa-db-ja.com

ElasticSearchおよび/またはSolrをMS OfficeおよびPDFドキュメントのデータストアとして使用する

現在、ユーザーがMS OfficeおよびPDFドキュメントに対してテキストクエリを実行し、結果がクエリに最も一致するドキュメントのリストを返す全文検索システムを設計しています。返されたドキュメントを選択して、MS Word、Excel、またはPDFビューアー内でそのドキュメントを表示します。

ElasticSearchまたはSolrを使用して、未加工のバイナリドキュメント(つまり、.docx、.xlsx、.pdfファイル)を「データストア」にインポートし、表示するコマンドでユーザーのデバイスにドキュメントをエクスポートできますか。

以前は、MongoDB 2.6.6を使用してRawファイルをGridFSにインポートし、抽出されたテキストを別のコレクション(コレクションにはテキストインデックスが含まれていました)にインポートしました。ただし、MongoDBの全文検索は非常に基本的なものであるため、より複雑なテキスト検索を実行するためにSolrまたはElasticSearchのいずれかを調べています。

ニック

19
ngekas

SolrとElasticsearchは両方とも、ドキュメントのcontentにインデックスを付けます。 Solrにはその組み込み機能があり、Elasticsearchにはプラグインが必要です。どちらの方法も簡単で、どちらもカバーの下でTikaを使用します。

どちらもドキュメント自体を保存しません。あなたは彼らにそれをさせることができますが、彼らはそれのために設計されていないので、あなたは苦しむでしょう。

また、現在、SolrもElasticsearchもプライマリストレージとして推奨されていません。彼らはそれを行うことができますが、それは彼らにとってミッションクリティカルではありません-例えば-ファイルシステムの実装にとって。

そのため、ファイルを別の場所に置き、Solr/Elasticsearchを検索のみに使用することをお勧めします。それは彼らが輝く場所です。

22

Elasticsearch添付プラグインを試してみます。詳細はこちらをご覧ください:

https://www.elastic.co/guide/en/elasticsearch/plugins/2.2/mapper-attachments.html

https://github.com/elasticsearch/elasticsearch-mapper-attachments

Apache Tikaの上に構築されています。

http://tika.Apache.org/1.7/formats.html

添付ファイルの種類

添付ファイルタイプを使用すると、Microsoft Office形式、オープンドキュメント形式、ePub、HTMLなど、さまざまな「添付ファイル」タイプフィールド(base64としてエンコード)にインデックスを付けることができます(完全なリストはここにあります)。

添付ファイルタイプはプラグイン拡張機能として提供されます。プラグインは、ダウンロードして$ ES_HOME/pluginsの場所に配置できるシンプルなZipファイルです。自動的に検出され、添付ファイルの種類が追加されます。

サポートされているドキュメント形式

  • ハイパーテキストマークアップ言語

  • XMLおよび派生形式

  • Microsoft Officeドキュメント形式
  • OpenDocumentフォーマット
  • iWorksドキュメント形式
  • ポータブルドキュメントフォーマット
  • 電子出版フォーマット
  • リッチテキスト形式
  • 圧縮およびパッケージング形式
  • テキスト形式
  • フィードとシンジケーションの形式
  • ヘルプ形式
  • オーディオ形式
  • 画像フォーマット
  • ビデオ形式
  • Javaクラスファイルとアーカイブ
  • ソースコード
  • メール形式
  • CADフォーマット
  • フォント形式
  • 科学フォーマット
  • 実行可能なプログラムとライブラリ
  • 暗号形式
14
John Petrone

Elasticsearchは、ドキュメント(.pdfs、.docsなど)を_sourceフィールド。 NoSQLデータストアとして使用できます(MongoDBと同じ)。

0
Jeff

Solrについて:

ドキュメントがメタデータ検索でのみ返される必要がある場合、SolrはBinaryFieldフィールドタイプを備えており、これにbase64エンコードされたバイナリデータを送信できます。一般的には、インデックス(RAM要件/パフォーマンス)、および可能であれば、外部にファイルを保存する設定(およびsolrのファイルへのパス)の方が適している場合があります。

Solrがpdf/doc内のテキストに自動的にインデックスを付けたい場合-extractrequesthandlerで可能です: https://wiki.Apache.org/solr/ExtractingRequestHandler

0
Alegis

パーティーに少し遅れましたが、これは誰かを助けるかもしれません:)

同様の問題があり、いくつかの調査で fscrawler に導かれました。説明:

このクローラーは、PDF、Open Office、MS Officeなどのバイナリドキュメントのインデックス作成に役立ちます。

主な機能:

  • ローカルファイルシステム(またはマウントされたドライブ)がクロールし、新しいファイルにインデックスを付けます。
  • 既存のものを更新し、古いものを削除します。 SSHクロールを介したリモートファイルシステム。
  • バイナリドキュメントをelasticsearchに「アップロード」できるRESTインターフェイス。
0
Nick