当前位置: 首页 > 知识库问答 >
问题:

轨道弹性搜索。创建索引!“根映射定义有不受支持的参数(映射程序\u解析\u异常)”

狄飞尘
2023-03-14

当我使用业务时,elasticsearch rails有问题__弹性搜索。创建索引 我收到一个错误:

{“错误”:{“root_cause”:[{“类型”:“mapper_parsing_exception”,“原因”:“根映射定义有不受支持的参数:[业务:{动态=true,属性={id={类型=整数}}}]"}],"类型”:“mapper_parsing_exception”,“原因”:“解析映射失败[_doc]:根映射定义不受支持参数:[业务:{动态=true,属性={id={type=整数}}}]","caused_by:{type:"mapper_parsing_exception","原因":"根映射定义有不受支持的参数:[业务:{动态=true,属性={id={type=整数}}}]"}},"状态": 400}

这一要求的背后是:

放http://localhost:9200/development_businesses[状态:400,请求:0.081s,查询:N/A]{“设置”:{“索引”:{“碎片数”:1},“映射”:{“业务”:{“动态”:“真”,“属性”:{“id”:{“类型”:“整型”}}

我的模型代码:

`
after_save :reindex_model
Elasticsearch::Model.client = Elasticsearch::Client.new url: ENV['BONSAI_URL'], log: true
include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
index_name [Rails.env, model_name.collection.gsub('///', '-')].join('_')
document_type self.name.downcase
`

我已经定义了我的映射:

`
settings index: { number_of_shards: 1 } do
    mappings dynamic: 'true' do
        indexes :id, type: 'integer'
    end
end
`

共有2个答案

相化
2023-03-14

从ES7开始,映射类型已被删除。你可以在这里阅读更多细节

如果您使用的是Ruby On Rails,这意味着您可能需要从模型或关注点中删除document\u type

作为映射类型的替代方案,一种解决方案是对每个文档类型使用索引。

之前:

module Searchable
  extend ActiveSupport::Concern

  included do
    include Elasticsearch::Model
    include Elasticsearch::Model::Callbacks
    index_name [Rails.env, Rails.application.class.module_parent_name.underscore].join('_')
    document_type self.name.downcase
  end
end

之后:

module Searchable
  extend ActiveSupport::Concern

  included do
    include Elasticsearch::Model
    include Elasticsearch::Model::Callbacks
    index_name [Rails.env, Rails.application.class.module_parent_name.underscore, self.name.downcase].join('_')
  end
end
杭柏
2023-03-14

在创建映射时删除部分{“business”:{“dynamic”:“true”}。试试下面这样对我来说很好-

PUT /development_businesses/
{
  "settings": {
    "index": {
      "number_of_shards": 1
    }
  },
  "mappings": {
      "properties": {
        "id": {
          "type": "integer"
        }
      }
  }
}
 类似资料:
  • 问题内容: 大家好,我正在尝试创建架构测试。 我收到以下错误 请帮助我解决此错误 问题答案: 您快到这里了,只是缺少了一些东西: 更新 如果您的索引已经存在,您还可以像这样修改映射: 更新 : 从ES 7开始,已删除映射类型。您可以在这里阅读更多详细信息

  • 我试图使用kibana开发工具在elasticsearch中创建一个索引,但我面临以下错误。请给我提建议。 错误:{type:"mapper_parsing_exception",原因:"根映射定义有不受支持的参数:[type: nested]} 这是工作罚款elasticsearch 7但不是在版本6.4.2

  • 我是Elasticsearch的新手。我尝试了堆栈溢出和其他网站上提供的不同解决方案,但它们对我不起作用,这就是为什么我发布这个问题。 我正在尝试添加标记器“:“uax\u url\u email”,以便我可以轻松地使用查询搜索电子邮件。 但是,当我设置映射时,弹性搜索给了我以下错误: 根映射定义有不受支持的参数(mapper_parsing_exception) 我试图删除索引并重新创建它,但也

  • 我是elasticseach的新手,正在尝试为自己的学习前景执行小任务。我指的是https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-templates.html链接以创建动态模板;然而,当运行下面提到的查询时,我得到了“type”:“mapper_parsing_exception”,“reason”:“根

  • 我有一个设计糟糕的文档结构: 我想从上面的文档中检索标题、Fach和代码。 多谢了。

  • 我的NEST代码用于Elasticsearch版本6,在Elastichsearch版本7中抛出以下错误: 无法分析映射[_doc]:根映射定义包含不支持的参数: 我见过这个问题,它解释了ES 7中不推荐的映射类型。。。我不确定这是否是我的问题?如何解决这个问题? 这是我生成索引的代码: 这是我的文档 以下是Elasticsearch的响应(错误):