【问题标题】:How to update filed type from string to array of strings in elasticsearch?如何在elasticsearch中将字段类型从字符串更新为字符串数组?
【发布时间】:2021-04-20 06:52:24
【问题描述】:

我有一个由具有此架构的数据填充的索引:

{
    "name" : "string",
    "book": "string"
}

我正在使用带有 Nest 和 C# 的 ElasticSearch。 现在由于业务需求 book 字段必须是一个数组,我更新了我的查询模型 C# POCO 类,但是当我运行我的查询时,我收到了这个错误:

预期:'[',实际:'"test"',偏移量:2248

现在我想更新我的架构以将书籍转换为数组类型。我尝试使用脚本和映射但找不到好的解决方案?是否有任何工作方法可以在 ElasticSearch 中执行此更改?

【问题讨论】:

    标签: c# elasticsearch nest


    【解决方案1】:

    您不能更新或更改已创建索引的映射(模式)中的字段类型。

    https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html#updating-field-mappings

    如果您需要更改类型,则应创建新索引并使用 Reindex API。

    【讨论】:

    • 还有另一种解决方案。您可以添加一个名为 book_array 的新字段。您不能更改现有字段,但可以添加新字段。
    • 我通过第一个模型读取所有文档并在 c# 代码中使用第二个模型更新数据来解决这个问题。但我正在寻找弹性搜索中的内置解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 2013-01-24
    • 1970-01-01
    相关资源
    最近更新 更多