0

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 ドキュメントのテキストを抽出し、インデックスを作成しました。次に、通常どおりクエリを実行します。

4

0 に答える 0