1

RailsとTiregem(ElasticSearch用)を使用しており、複数のモデルを検索する必要があります。何かのようなもの:

# title is a field in all models
Tire.search :tasks, :projects, :posts, { :title => "word" } 

モデルを1つずつ検索してこれらの結果を処理できることはわかっていますが、ElasticSearch(Lucene)がドキュメント指向であることを考えると、これは不要です。

何かご意見は?

ありがとう、

4

1 に答える 1

1

1つの可能性は、それらを別個のモデルとしてではなく見ることです。複合モデルは、すべてのドキュメントが、複数値を持つことができる文字列定数によって識別される1つまたは多くの異なるサブモデルに属するアイテムである可能性があります。

これらのサブモデルの1つから結果のみを取得する場合は、このサブモデルに属するドキュメントのセットを識別する固定部分をクエリに追加できます。

唯一の注意点は、一意の主キーが必要なことです(暗黙のドキュメントキーのようなものを使用できるため、それほど悪くはありません)。

于 2011-07-04T12:18:53.857 に答える