1

solrで、次のように単一のドキュメントのキーと値のペアにインデックスを付けることは可能ですか?


ドキュメントID:100

2011-05-01,20

2011-08-23,200

2011-08-30,1000


ドキュメントID:200

2011-04-23,10

2011-04-24,100


次に、特定の時間範囲で特定の値の集計を持つドキュメントをクエリします。つまり、「2011-08-01と2011-09-01の間にsum(value)> 0のドキュメントを指定してください」は、IDが100のドキュメントを返します。上記のデータ例。

4

1 に答える 1

0

これは、 Solr User Mailing Listからの投稿で、キーと値のペアとしてフィールドを処理するためのいくつかのアプローチが説明されています。

1)フィールド値に「id」と「label」をエンコードします。そのファセット; クライアントにデコード方法を知ってもらう必要があります。これは、id => labelマッピングが変更されることはなく、エンコードが簡単な単純なもの(つまり、「01234:ChrisHostetter」)に非常に適しています。これは、id=>labelマッピングが任意の頻度で変化する場合の恐ろしいアプローチです。

2)別のタイプの「メタデータ」ドキュメントを用意します。IDとラベルのフィールド(および、メインのドキュメントと区別できるようにdoc_typeフィールド)を含むことに直面している「もの」ごとに1つです。メインのクエリを実行し、IDでファセット化された結果を取得したら、それらのIDをクエリして、対応するラベルを取得できます。これは、ラベルが変更された場合(対応するメタデータドキュメントのインデックスを再作成するだけ)に非常にうまく機能し、これらの各ドキュメントに追加のメタデータを保存できるという追加のボーナスがあります。多くの場合、最初の「参照」インターフェイスを表示するために、次のことができます。すべてのメインドキュメントにわたる高価なファセットクエリの代わりに、すべてのメタデータドキュメント(または特定の基準を満たすすべてのメタデータドキュメント)を安価に検索することで解決できる場合があります。

于 2011-09-28T15:17:04.080 に答える