ElasticSearch を使用してリソースのインデックスを作成します。索引付けされたリソースごとにドキュメントを作成します。各リソースには、メタデータとバイナリ ファイルの配列を含めることができます。これらのバイナリ ファイルを添付ファイルタイプで処理することにしました。メタデータは、文字列型の単純なフィールドにマップされます。バイナリ ファイルは、添付ファイルタイプの配列フィールド ( という名前のフィールドattachments
) にマップされます。すべて正常に動作します。バイナリ ファイルの内容に基づいてリソースを見つけることができます。
私が使用している ElasticSearch のもう 1 つの機能は強調表示です。メタデータ ファイルとバイナリ ファイルの両方の強調表示をうまく構成できましたが、...
フィールドの強調表示されたフラグメントを要求するとattachments
、フラグメントのソースに関する情報なしでこれらのファイルのフラグメントのみが取得されます (添付ファイル配列フィールドに多くのファイルがあります)。強調表示されたフラグメントと添付ファイル配列の要素の間のマッピングが必要です-たとえば、ファイルの名前または少なくとも配列内のインデックス。
私が得るもの:
"attachments" => ["Fragment <em>number</em> one", "Fragment <em>number</em> two"]
必要なもの:
"attachments" => [("file_one.pdf", "Fragment <em>number</em> one"), ("file_two.pdf", "Fragment <em>number</em> two")]
このようなマッピングがないと、アプリケーションのユーザーは、特定のリソースにキーワード付きのファイルが含まれていることはわかりますが、ファイルの名前についてはわかりません。
ElasticSearch を使用して必要なものを達成することは可能ですか? どのように?
前もって感謝します。