2016-12-05 1 views
0

アプリケーションの新機能では、複雑なテーブルビュー(すべての行に5つ以上のエンティティの情報を表示)を表示し、ユーザーがすべての要素を検索できるようにする必要があります。Symfony、ElasticSearchおよびカスタムタイプ

FosElasticaBundleの基本的な利用率を持つSQLデータベースがあり、ElasticSearchインデックスがDBにリンクされていることを意味します。 私たちが置くことができる最良のシナリオは何か分かりません。カスタムプロバイダ/ファインダを使用してカスタムタイプを作成していましたが、良いアイデアかどうかはわかりません。

ユーザーに表示される情報が厳密なマッピングでは複雑すぎる場合があります。私はこれをSF/ESで処理する最良の方法を探していますMySQLレベルで可能)。

答えて

0

同様のシナリオでは、Elastic検索ドキュメント間に親子関係を使用して、複雑さをクエリに移動します。クエリの複雑さによっては、これはひどい頭痛になることがあります。

その他のオプションは、すべてのドキュメントを1つのドキュメントにシリアライズすることです。これは、一般的に言えばクエリを簡単にしますが、一方では、関連するエンティティをすべて更新しておく必要があります。

私は両方を使用しました。私は、最も正しいものが最初のものだと思いますが、あなたの子供のエンティティが変更されない場合は、2番目のものが簡単に見つかります。

ElasticSearchの結果からDoctrineドメインに戻って、時間をかけてパフォーマンスを評価してください。遅延ロードがパフォーマンスを害するのを避けるために、必要な結合を備えたElasticaToModelトランスフォーマーを行う方がよい場合もあります。

関連する問題