在弹性搜索中不报告模型中定义的Rails Elasticsearch分析器映射

时间:2015-06-08 17:21:34

标签: ruby-on-rails ruby-on-rails-4 elasticsearch sense

在我的食谱模型中,我有:

class Recipe < ActiveRecord::Base

index_name "recipes-#{Rails.env}"

settings do
  mappings dynamic: 'false' do
    indexes :title, type: 'string', analyzer: 'french'
    indexes :description, type: 'string', analyzer: 'french'
  end
end

def as_indexed_json(options={})
  self.as_json({only: [:title, :description]})
end

然后在rails控制台中,我启动Recipe.import。当通过curl或Sense GET /recipes-development/_mapping/询问elasticsearch时,我得到了

{
   "recipes-development": {
      "mappings": {
         "recipe": {
            "properties": {
               "description": {
                  "type": "string"
               },
               "title": {
                  "type": "string"
               }
            }
         }
      }
   }
}

我丢失了有关分析仪的所有信息。任何想法将不胜感激

1 个答案:

答案 0 :(得分:0)

Recipe.import之前你必须执行

Recipe.__elasticsearch__.create_index! force: true