FOS Elastica Bundle を使用して、インデックス付きの pdf ファイルのコンテンツからプレーン テキストの検索結果を取得するにはどうすればよいですか?
Symfony2 で Doctrine を使用して、Attachment-Mapper Plugin
Elastica
FOS Elastica Bundle でElasticSearch を使用しています。
これまでのところ、マッパー アタッチメントを起動して実行することができました。pdf ファイルのコンテンツは、https://github.com/FriendsOfSymfony/FOSElasticaBundle/issues/96をガイドとして使用して索引付けされています。
方法の要約なので、github の投稿全体を読む必要はありません。
1) 「getEncodedFile」メソッドで「ドキュメント」エンティティを作成します。注: このメソッドでは、ファイルの内容のみを取得します。これは後で発生するため、ここでデータを base64 エンコードする必要があるとは思いません (Elastica Document クラスがこれを行うと確信しています)。
2) 次に、config.yml をセットアップします。
types:
document:
mappings:
id: ~
encodedFile:
type: attachment
persistence:
driver: orm
model: MyBundle\Entity\Document
provider: ~
finder: ~
listener: ~
検索機能は正しいエンティティを返します。ハイブリッドの結果を var_dump すると、すべてのフィールドを含む正しいエンティティが得られます。「setHighlight」メソッドを追加しても、何も変わりません。setHighlight メソッドは、「encodedFile」フィールドに関して何も返しません。setHighlight を他のフィールドで使用できるようにしました。
インデックス化された base64 でエンコードされたデータからプレーン テキストの検索結果を (何らかのコンテキストと共に) 取得するにはどうすればよいですか?
このスタックの投稿、何千ものドキュメント (pdf および/または xml) の検索可能なアーカイブのベスト プラクティスによると、それは可能のようです。
前もって感謝します
アップデート
だから私は洞窟に入った。最終的に、XPDF を使用して各 PDF ドキュメントのテキストを抽出し、インデックスを作成しました。次に、通常どおりクエリを実行します。