私はelasticsearch-model
とelasticsearch-rails
宝石を使用しています。
私のプロファイルモデルには
settings index: { number_of_shards: 3 } do
mappings dynamic: 'false' do
indexes :profile_type, analyzer: 'keyword'
indexes :profile do |p|
indexes :name, type: 'multi_field' do
indexes :name, analyzer: 'snowball'
indexes :tokenized, analyzer: 'keyword'
end
end
end
end
suggest
フィールドを追加してみました
settings index: { number_of_shards: 3 } do
mappings dynamic: 'false' do
indexes :profile_type, analyzer: 'keyword'
indexes :suggest, type: 'suggest' # not sure about this
# do not really know how to index this field
indexes :profile do |p|
indexes :name, type: 'multi_field' do
indexes :name, analyzer: 'snowball'
indexes :tokenized, analyzer: 'keyword'
end
end
end
end
に提案しようとしていますprofile.name
、追加しましたas_indexed_json
def as_indexed_json(options={})
suggest= {
suggest: {
:input => profile.name,
:output => profile.name,
:payload => {
name: profile.name
}
}
}
self.as_json(
:only => [:profile_type, :slug],
:include => {
:profile => {}
}
).merge(suggest)
end
どんな助けでも、どんな提案でもいただければ幸いです。