Elasticsearch と Elasticsearch Rails gem を使用しています。ActiveRecord を介して関連付けられている 2 つのモデルがあり、Elasticsearch でそれらのインデックスを作成して検索しようとしています。
ここに私の店のモデルがあります
store.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
また、フロント エンド UI として Searchkit を使用しています。Searchkit は、店舗モデルに含まれるすべての属性 (店舗番号やマネージャーなど) を集約して表示できます。ただし、ネストされたアイテムを表示することはできません。つまり、顧客の下にあるジョブの下の job_numbers を集計して取得することはできません。顧客名などを表示できます。ジョブと他のすべてのオブジェクトの横に type: "nested" を使用してみましたが、違いはありません。as_indexed_json を調整しようとしましたが、運もありませんでした。誰でもこれについて何か考えがありますか?私はこれに困惑しています。