0

現在のプロジェクトでは、複数のメールボックスからのすべての電子メールとその添付ファイルにインデックスを付ける必要があります。

Solrを使用しますが、インデックスの構造を構築するための最良のアプローチがわかりません。私の最初のアプローチは次のとおりです。

<fields>
<field name="id" require="true"/>
<field name="uid" require="true"/>
//A lot of other fields
<dynamicField name="attachmentName_*" require="false">
<dynamicField name="attachmentBody_*" require="false">
</fields>

しかし、今ではそれが最良の構造であるかどうかはよくわかりません。1つのクエリで1つの用語(例: stackoverflow)を検索し、その用語がどこにあるか(例:attachmentBody_1または_2または_3など)を知ることはできないと思います。

誰かが私のインデックスの構造についてより良い提案を持っていますか?

4

2 に答える 2

4

attachmentName と attachmentBody に multiValued フィールドを使用できます。したがって、動的フィールドではなく、通常のフィールドが 2 つあることになります。その後、強調表示を使用して、周囲のコンテキストと一致する特定の値を取り戻すことができます。

別のオプションは、各添付ファイルを個別のドキュメントにして、それがどの電子メールに属しているかを識別するために何かを保存することです。このアプローチの欠点は、電子メール自体のデータを数回インデックス化する必要がある場合があることです。しかし、これが実際に問題になるのは、ほとんどの電子メール メッセージに複数の添付ファイルがある場合だけです。

于 2009-04-03T17:13:16.503 に答える
0

私は1つの可能な解決策を見つけました。私がする必要があるのは、attachmentBodyを保存されているように設定することだけです。

インデックスのスペースが劇的に増加するため、このソリューションは十分ではありませんが、私の場合は問題ありません。ハイライト機能も実装するため、これらのフィールドを保存する必要があります。

于 2009-04-03T15:59:23.703 に答える