2017-02-21 7 views
4

私は、電子商取引クライアントが自分のウェブサイトに統合する商品検索ウィジェットを構築しています。私はそれぞれ1000の製品を持つ100のクライアントを持っているとしましょう。Algoliaで1つのインデックスまたは複数のインデックスを使用すべきですか?

特定のクライアントのWebサイトにアクセスした訪問者は、そのクライアントの製品のみを検索できます。

は、私はすべての顧客を保存するために個別の各クライアントのインデックス、または1つのインデックスを使用する必要があります。製品はクライアント間(ID、名前、価格、など...)まったく同じ属性を共有することを考えると

どういうわけか各製品をクライアントと関連付けることができますか?

ありがとうございます。

答えて

7

私は強く、それはあなたが

  • 異なるインデックスの設定、必要に応じて(タイポトレランス、同義語)
  • 分離分析
  • を持つことができるため、クライアントごとに別のインデックスを作成することをお勧めします別のAPIキーを作成する可能性 各インデックス(doc参照)

これは、他の方法を使用する場合には当てはまりません。

1

インデックスは1つのみ使用できます。だからあなたのコントローラのプライベートセクションに

private 
def find_client 
@client = Client.find(params[:client_id]) 
end 

を追加し、ユーザーはこれだけのクライアントの製品を見ることができることを確認してくださいあなたのクライアントは、このような

のclient_id

としてのparamによって発見された before_action :find_clientメソッドを使用します。これを行うには、インデックスページにアクセスするときにparamsにclient_idを渡す必要があります。

より、インデックスアクションのアプリの構造によっては、クライアント用の商品をフィルタリングする必要があります。クライアントがfind_clientメソッドで設定されている場所。

関連する問題