2016-04-22 7 views
4

私はlaravel phpを使ってWebアプリケーションを構築しています。私はalgoliaを検索サービスとして使用しています。しかし、私はアルゴリアがピボットテーブルと他のテーブルの外部IDに基づいて結果を返すようにすることはできません。私の質問は現時点でアルゴリアがピボットテーブルとリレーショナルテーブルをサポートしていないということですか?私のせい? ありがとうございます。Algoliaは、ピボットテーブルとリレーショナルテーブルをサポートしていますか?

答えて

6

検索エンジンは最初、関係を処理するようには設計されていません。データベースは優れていますが、クエリ時に大きなコストがかかります。

パフォーマンス上の理由から、Algoliaエンジンは、この種の関係をサポートしていません。したがって、アルゴリアにプッシュする前にデータを非正規化することが最善の方法です。

例:

あなたはusers(id, name) & posts(id, author_id, content) SQLテーブルを持っていて、ポストの内容や作者名の両方を表示しながらポストに検索したいです。

あなたの側でJOINを実行して、作者の名前を解決し、単一の{ "objectID": 42, "content": "...", "author_name": "<fetched from users table>" }オブジェクトをAlgoliaにプッシュする必要があります。

関連する問題