ElasticSearch 定义自定义映射与默认“_doc”映射冲突

2024-05-06

尝试创建自定义映射类型时会发生此问题。 为第一个插入弹性创建自定义映射后想要创建_doc映射类型和冲突就发生在这里。

第一步我创建一个映射

{
    "mappings": {
        "properties": {
            "field1": {
                "type": "keyword"
            },
            "field2": {
                "type": "short",
                "index": false
            }
        }
    }
}

进入第二步,将第一个数据放入弹性中

curl --location --request PUT 'localhost:9200/myindex/mydoc/1

{
    "field1": "first info",
    "field2": 0
}

但在第二步中,当我尝试将第一个数据放入弹性时遇到以下错误

 "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "Mapper for [field2] conflicts with existing mapper:\n\tCannot update parameter [index] from [false] to [true]"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "Mapper for [field2] conflicts with existing mapper:\n\tCannot update parameter [index] from [false] to [true]"
    },
    "status": 400

似乎在这一步中弹性尝试创建动态映射,并且该映射想要创建 field2 作为索引字段。

还根据我使用的另一个答案dynamic: false or dynamic: "strict"在映射中设置像跟随块代码,但它不起作用

{
    "mappings": {
        "dynamic": false,
        "properties": {
            "field1": {
                "type": "keyword"
            },
            "field2": {
                "type": "short",
                "index": false
            }
        }
    }
}

字段类型也会发生此错误。例如,我的字段类型是“关键字”,但在自动映射上尝试将此类型转换为“文本”!


dynamic范围 https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic.html#dynamic-parametersElasticsearch 的默认值为true。当尝试复制您的问题时,我按照以下步骤操作

  1. 使用给定的索引映射创建新索引
PUT <index-name>
{
  "mappings": {
    "properties": {
      "field1": {
        "type": "keyword"
      },
      "field2": {
        "type": "short",
        "index": false
      }
    }
  }
}
  1. 将数据索引到新索引中。根据问题,我应该无法索引数据,并且elasticsearch将返回映射器解析异常。
POST <index-name>/_doc/1
{
  "field1": "first info",
  "field2": 0
}

但是按照上述步骤,我能够成功地在索引中索引数据。


index 选项控制是否对字段值建立索引。它接受 true 或 false,默认为 true。未索引的字段是 不可查询。

仅当您尝试更新时才会出现您收到的错误index的参数field2.

最初,当您使用以下命令创建索引映射时field2 having index参数设置为 false,无法更新为true。 (这称为冲突更改)

如果您想更新indexparam,那么您必须使用新的索引映射创建一个新索引,并为其中的文档建立索引,这可以使用 reindex API 来完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElasticSearch 定义自定义映射与默认“_doc”映射冲突 的相关文章

随机推荐

  • 横切关注点示例

    什么是一个很好的例子cross cutting concern 医疗记录示例维基百科 http en wikipedia org wiki Cross cutting concern页面对我来说似乎不完整 具体来说 从这个例子来看 为什么日
  • 规范注册 ID 和消息 ID 格式

    我的理解有问题Canonical Registration Id并让谷歌返回它 我特意注册了两次我的Android应用程序 以测试Canonical Registration Id 但是当我尝试向两者推送消息时Registration Id
  • 为什么需要为每个线程创建 ABAddressbookRef?

    苹果说 重要提示 ABAddressBookRef 的实例不能被多个使用 线程 每个线程必须创建自己的实例 But why 我知道某些特定的类或操作必须在主线程中完成 而且我知道有些对象不是线程安全的 这意味着如果这些对象同时被两个不同的线
  • 创建一个跨浏览器 mixin 进行转换:旋转

    我想为 sass 创建一个 mixin 它将对指定元素应用旋转 mixin 应采用一个参数 表示要应用的旋转度数 从 css3please com 我找到了一种使用 CSS 实现此功能的跨浏览器方法 box rotate moz trans
  • 如何从特定 Sourceforge 项目下载所有文件?

    在花了大约一个小时从 sourceforge 下载几乎每个 Msys 包之后 我想知道是否有更聪明的方法来做到这一点 是否可以使用 wget 来实现此目的 我已经成功地使用了这个脚本 https github com SpiritQuadd
  • 文件/文件夹结构的递归搜索

    我正在尝试为返回文件和文件夹列表的 Web 服务构建递归搜索功能 我创建了这两个方法 因此它们充当递归搜索 它首先获取顶级内容 然后将任何文件添加到 fileList 并将任何子文件夹添加到 subFoldersList 我们传入访问级别
  • 无限滚动 jQuery 和 Laravel 5 分页

    我成功从控制器返回数据 public function index posts Post with status verified gt paginate 30 return view show gt with compact posts
  • 使用 PSEXEC 远程启动和停止 Windows 服务

    如何使用 PSEXEC 远程启动和停止 Windows 服务 最好是编写语法我尝试了下面给出的 cmdlet psexec Server u Administrator p Somepassword ServiceName SysInter
  • 虚拟继承 - 跳过构造函数

    我有以下课程 class Socket Socket Socket SOCKET s class Connection public virtual Socket Connection IP ip 这两个类包含一些纯虚函数和一些非虚函数以及
  • useState 由于某种原因没有更新?

    当我尝试使用 axios 从后端 API 获取一些数据 并在由于某种原因获得结果后设置状态时 状态不会更新 当我尝试使用状态时 它只会向我显示一个空数组 但有趣的是当我console log res data 它会毫无问题地向我显示我的列表
  • 设置restrict_xpaths设置后出现UnicodeEncodeError

    我是 python 和 scrapy 的新手 将restrict xpaths 设置设置为 table class lista 后 我收到了以下回溯 奇怪的是 通过使用其他 xpath 规则 爬虫可以正常工作 Traceback most
  • 如何使您的 GWT 应用程序可插入?

    我正在 与我的团队 编写一个 GWT 应用程序 它解析并表示一些特定于领域的语言 例如 使用文本 视频和 UI 控件播放媒体演示 所以应用程序有一组组件 一个 用于保存模型 一个 用于控制例程 控制器 当然我们还有视图类 现在我们遇到了一个
  • 如何检查打开的跨域窗口是否准备好接收postmessage?

    我从另一个域启动一个 URL 然后向它发送消息 const child window open http urlfromanotherdomain com child postMessage you cant handle the mess
  • 有没有办法在 vscode 片段前缀中使用正则表达式?

    我阅读了该文档 似乎正则表达式仅在代码片段正文中使用 正则表达式只能用于转换代码片段正文中的代码片段变量 但您可以放置 多个代码片段前缀 如下所示 stripLastDirectory prefix lsd lsf lsq body TM
  • Java 中的 ConcurrentHashMap 和 Hashtable [重复]

    这个问题在这里已经有答案了 Java 中的 ConcurrentHashMap 和 Hashtable 有什么区别 哪个对于线程应用程序更有效 ConcurrentHashMap 和 Hashtable 锁定机制 Hashtable属于Co
  • 使用信用卡和支付网关进行年龄验证

    我正在开发一个游戏网站 用户必须年满 18 岁才能付款并开始游戏 我正在寻找一种解决方案来使用用户通过网站付款的信用卡来验证年龄 是否可以借助任何公认的支付网关来验证持卡人的年龄 是否可以通过任何方式验证持卡人的年龄 公认的支付网关 我 1
  • 如果应用程序被杀死,小米手机中不会收到 GCM 推送通知

    我将 GCM 集成到我的项目中以接收来自服务器的推送通知 我能够在所有设备 Nexus 三星等 中成功接收推送通知 但是 我在小米手机上收不到通知 当应用程序正在运行或在后台时 我会收到通知 但是如果我终止该应用程序 通过将应用程序从最近的
  • Python二进制数据读取

    urllib2 请求接收二进制响应 如下所示 00 00 00 01 00 04 41 4D 54 44 00 00 00 00 02 41 97 33 33 41 99 5C 29 41 90 3D 71 41 91 D7 0A 47 0
  • C 中的静态和外部内联函数[重复]

    这个问题在这里已经有答案了 我正在尝试详细了解静态函数和外部函数之间的区别 我知道静态内联函数和外部内联函数之间的基本区别 我的理解如有错误请指正 静态内联函数仅对定义它的翻译单元可见 外部内联函数可以在多个翻译单元中访问 最好在头文件中定
  • ElasticSearch 定义自定义映射与默认“_doc”映射冲突

    尝试创建自定义映射类型时会发生此问题 为第一个插入弹性创建自定义映射后想要创建 doc映射类型和冲突就发生在这里 第一步我创建一个映射 mappings properties field1 type keyword field2 type