ruby-on-rails - 模型中定义的Rails Elasticsearch分析器映射未在Elasticsearch中报告

标签 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"
               }
            }
         }
      }
   }
}

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

最佳答案

Recipe.import之前,您必须执行

Recipe.__elasticsearch__.create_index! force: true

关于ruby-on-rails - 模型中定义的Rails Elasticsearch分析器映射未在Elasticsearch中报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30715390/

相关文章:

ruby-on-rails - rails : How can I make an object available in all views?

ruby-on-rails - Mongoid 5.0 - Rails 4 - Finder 停止工作

devise - Ruby on Rails - 设计错误 : undefined local variable or method

scala - WARN ScalaRowValueReader:字段 'client'由数组支持,但是关联的Spark Schema不能反射(reflect)这一点

ruby-on-rails - Rspec Controller 测试通常是否太长?

ruby-on-rails - 使用 capybara、phantomjs 和 Rails 在子域上测试 javascript

ruby-on-rails - Rails 应用程序部署问题

ruby-on-rails - Rails 4 ActionMailer around_action |访问操作信息(操作名称和参数)

elasticsearch - 如何从logstash将geo_point类型数据添加到elasticsearch?

c# - ElasticSearch.Net-更新具有多个组件的数组