我正在使用 Elasticsearch 和 Elasticsearch Rails gem。我有两个通过 ActiveRecord 关联的模型,我正在尝试使用 Elasticsearch 对它们进行索引和搜索。
这是我的商店模型
商店.rb
has_many :addresses
has_many :jobs
def as_indexed_json
self.as_json(include: {
customer: { include: { addresses: {}, jobs: {} } },
vendors: {}
})
end
settings index: { number_of_shards: 1 } do
mapping dynamic: 'false' do
indexes :id
indexes :store_number
indexes :manager
indexes :customer do
indexes :first_name
indexes :addresses do
indexes :city
indexes :state
end
indexes :jobs do
indexes :job_number
end
end
end
end
这是我的地址模型:
def as_indexed_json
end
settings index: { number_of_shards: 1 } do
mapping dynamic: 'false' do
indexes :city
indexes :state
end
end
我也使用 Searchkit 作为我的前端 UI。Searchkit 能够聚合和显示商店模型中的所有属性(例如商店编号和经理)。但是,它无法查看嵌套项。换句话说,我无法聚合和检索客户下的工作下的 job_numbers。我可以查看客户姓名等。我尝试在作业和所有其他对象旁边使用 type: "nested" ,但这并没有什么不同。我也尝试过调整 as_indexed_json ,但没有任何运气。有人对此有任何想法吗?我被这个难住了。