2009-04-03 10 views
0

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

私は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つの用語を検索することができると思います(例えばstackoverflowの)という用語は、(例えばattachmentBody_1または_2または_3など)単一のクエリであったところを知りません。

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

答えて

0

可能な解決策が見つかりました。私がする必要があるのは、attachmentBodyを格納済みとして設定することだけです。

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

4

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

別のオプションは、各添付ファイルを別々のドキュメントにし、それが属する電子メールを識別するためのものを格納することです。この方法の欠点は、電子メール自体のデータに何度もインデックスを付ける必要があることです。しかし、電子メールメッセージの大部分に複数の添付ファイルがある場合は、実際には問題になります。

+0

このようにして、どのファイルがマッチしたのかわからないことがあります。とにかく...ハイライトするには私は店舗= "true"のフィールドが必要なので、まだスペースの問題があります。 –

+0

あなたの2番目のオプションは良いものですが、私はすでにそれについて考えていました=) –

関連する問題