Rails elasticsearch映射被忽略

时间:2018-04-25 16:41:59

标签: ruby-on-rails ruby elasticsearch

所以我一直试图让这项工作持续几个小时,似乎没什么用。

我的模型中定义了mappings

  settings do
    mappings dynamic: false do
      indexes :title, type: 'text'
      indexes :description, type: 'text'
      indexes :user, type: 'text' do
        indexes :name, type: 'text'
      end
    end
  end

但是当我这样做时:

Podcast.__elasticsearch__.delete_index! force: true Podcast.__elasticsearch__.create_index! force: true Podcast.__elasticsearch__.import force: true

并访问:http://localhost:9200/podcasts/_search?pretty=true&q=*:*&size=1000

我看到所有模型数据都填充到索引中(我只需要标题,描述和用户名)。

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

当建立索引时,rails-ealsticsearch使用as_indexed_json。这是我的例子:

def as_indexed_json(options = {})
  as_json(include: {
    user: {
      only: [
        :id,
        :slug, 
        :name
      ]
    }
  })
end