2017-02-21 62 views
4

我正在构建电子商务客户端集成到其网站的产品搜索窗口小部件。假设我有100个客户,每个客户有1000个产品。我应该在Algolia中使用一个或多个索引吗?

特定客户网站上的访问者只能搜索该客户的产品。

鉴于产品有着完全相同的属性(ID,名称,价格等)跨客户端:

我应该使用每个客户建立一个单独的索引,或一个索引来存储所有客户产品,并以某种方式将每个产品与客户端相关联?

在此先感谢。

回答

7

我会强烈建议您创建一个单独的指数为每一个客户,因为它可以让你有

  • 不同的索引配置如果需要的话(错字容忍,同义词)
  • 分离分析
  • 创建一个不同的API密钥的可能性 每个索引(请参阅doc)

如果使用其他方法,情况并非如此。

1

只能使用一个索引。使用before_action :find_client方法,其中客户端是由PARAM找到诸如CLIENT_ID

所以在你的控制器的私有部分新增

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

,并确保用户只能看到该客户的产品。为此,您需要在访问索引页时在参数中传递client_id。

比根据您的索引操作中您的应用程序的结构,您需要筛选客户端的产品。客户端由您的find_client方法设置。

相关问题