4

RailsにTiregemを使用していますが、モデルの関連付けについていくつか質問があります。彼らとどのように協力しますか?人と車の関係があるとしましょう。一人一人がたくさんの車を持っています。車のオブジェクトにもインデックスを付けたい場合、どのように行いますか?たとえば、car.makeを検索して人を取得するにはどうすればよいですか?

一般に、ドキュメント中心のelasticsearchには、RDBMSと同じ概念がないことがわかります。1対1、1対多、多対多。

たとえば、多対多の関係があり、関係のもう一方の端のプロパティを持つオブジェクトだけが必要な場合は、不可能になりますか?Elastic Searchは、MongoDBのようなNoSQLデータベースに適していますか?

4

1 に答える 1

4

関係を含め、Elasticsearchでデータをモデル化する方法には多くの可能な戦略があります。Elasticsearchには、関連データに対して少なくとも3つの戦略があります。

  1. JSONを使用するだけで、階層を流暢に表現できます。
  2. Carが実際に車のリストである状況では、ネストされたタイプを使用します。
  3. 両方のエンティティに個別にインデックスを付ける必要がある状況では、親子サポートを使用します。

Tireの場合、最初に次の回答をコードで確認して試してください:Elasticsearch、Tire、およびNestedクエリ/ActiveRecordとの関連付け。シナリオに必要なすべての情報が含まれている必要があります。コードは個別に入手することもできます。

参照:

于 2013-02-24T08:20:04.923 に答える