所以,我一直在搞乱这个问题几个小时,我想我已经尝试过在这个问题上发布过的所有内容了。这是我的第一个问题。
所以,我正在尝试搜索模型(Locations):branch_name,:branch_address1等及其子模型(Employees):first_name在该模型中用作自己的属性。因此,如果位置员工姓名在搜索查询中,则所需的效果将是位置(作为结果)将返回。我试图用这样的代码来实现这个目标:
class Location < ActiveRecord::Base
belongs_to :partner
has_many :employees, dependent: :destroy
validates_presence_of :branch_name, :branch_address1, :branch_country, :branch_zip_code
accepts_nested_attributes_for :employees, allow_destroy: true, :reject_if > proc { |attributes| attributes['first_name'].blank? }
searchable do
text :branch_name, :branch_address1, :branch_city, :branch_zip_code
text :employee_attributes do
:first_name
if :employee_attributes
end
end
end
end
我也想使用父模型(合作伙伴)名称,但我也无法使用它。
我可以在Locations表中创建一个新列来捕获每个新员工姓名,还是可以在该模型中搜索孩子?
答案 0 :(得分:0)
我使用solr with rails,我遇到过类似的问题。 就像你问过新专栏一样,我在solr中添加了一个新字段
伪代码
searchable do
text :first_name, :stored => true
string :partner_name, :stored => true do
partner.name
end
end
请注意,存储的字段会增加成本。
在我的情况下,我不得不触发多次查询,耗时47秒,存储值帮助我避免多次查询,单次查询耗时5秒。
您需要重新编制索引才能获得结果。