私はまだ解決できていない複雑な問題に直面しています。
Postgresql 9、ElasticSearch 0.20.6、gem Tire (0.5.7) で Rails 4(edge) を使用しています。一緒にリンクされている複数のテーブルがあります。例えば:
エージェンシーには多くのクライアントがいます クライアントには多くのプロジェクトがあります プロジェクトには多くのファイルがあります
ここでの私の目標は、次の 2 つの方法でファイルのインデックスを作成できるようにすることです。
- 最初に、すべてのファイルを簡単かつ迅速に検索できるインデックスを作成します。タイヤだけで成功したこと。私のインデックスには「ファイル」タイプがあり、それは魅力のように機能します。
- 私が作成したいもう 1 つのインデックスには、ファイル情報の一部だけでなく、クライアントと代理店のプロパティの一部も含まれます。これは、プロジェクトのカテゴリやクライアントの場所などの基準に従って最適なファイルを取得できる外部ツール用です...
私はpostgresqlを使用しているので、そこからデータベースビューとインデックスデータを作成できると考えていました。ビューが複数の結合でかなり複雑になるため、そのようにするのが良いかどうかはわかりません。さらに、更新するとデータベース全体の再インデックス作成がトリガーされるのではないかと心配しています。
純粋なタイヤ モデルを実行し、リンクされたテーブルのいずれかでインデックスの更新を簡単にトリガーする方法があるかどうか疑問に思っていました。たとえば、 という名前の型でデータにインデックスを付けますfiles_front
。ファイルまたは親を更新するたびに、影響を受けるすべてのファイルの値が ES で更新されるモデルFilesFront
があります。has_one :file
どうすればいいのか本当にわからないので、アドバイスをいただければ幸いです。