我不确定我是否会使用algolia-rails
宝石(以及一般的Algolia)朝着正确的方向前进:
目前我有这两个模型:
class Contact < ActiveRecord::Base
include AlgoliaSearch
belongs_to :account
algoliasearch do
attribute :account_id, :full_name, :email, :tax_id, :contact_name
searchableAttributes ['full_name', 'email', 'tax_id', 'contact_name']
customRanking ['asc(full_name)']
end
end
class Account < ActiveRecord::Base
has_many :contacts
end
我想仅检索联系人索引上给定account_id
的匹配记录,以便生成的查询不会查找不属于特定帐户的联系人ID。因此current_account.contacts.algolia_search("Tom")
不应从其他帐户联系人处获取ID。
看起来它与方面有关,但我不确定。
答案 0 :(得分:1)
是的,它与方面有很大关系。我修改了Contact
模型,将其添加到algoliasearch
块中:
attributesForFaceting ['account_id']
然后过滤匹配&#34; Tom&#34;通过特定的account_id
(让我们假设3),它就像以下一样简单:
Contact.algolia_search("Tom", {facets: 'account_id', facetFilters: "account_id:3"})