これは、 Solr User Mailing Listからの投稿で、キーと値のペアとしてフィールドを処理するためのいくつかのアプローチが説明されています。
1)フィールド値に「id」と「label」をエンコードします。そのファセット; クライアントにデコード方法を知ってもらう必要があります。これは、id => labelマッピングが変更されることはなく、エンコードが簡単な単純なもの(つまり、「01234:ChrisHostetter」)に非常に適しています。これは、id=>labelマッピングが任意の頻度で変化する場合の恐ろしいアプローチです。
2)別のタイプの「メタデータ」ドキュメントを用意します。IDとラベルのフィールド(および、メインのドキュメントと区別できるようにdoc_typeフィールド)を含むことに直面している「もの」ごとに1つです。メインのクエリを実行し、IDでファセット化された結果を取得したら、それらのIDをクエリして、対応するラベルを取得できます。これは、ラベルが変更された場合(対応するメタデータドキュメントのインデックスを再作成するだけ)に非常にうまく機能し、これらの各ドキュメントに追加のメタデータを保存できるという追加のボーナスがあります。多くの場合、最初の「参照」インターフェイスを表示するために、次のことができます。すべてのメインドキュメントにわたる高価なファセットクエリの代わりに、すべてのメタデータドキュメント(または特定の基準を満たすすべてのメタデータドキュメント)を安価に検索することで解決できる場合があります。