当前位置: 首页 > 面试题库 >

elasticsearch更新给出未知字段错误

孙成化
2023-03-14
问题内容

我正在使用Elasticsearch的Typescript客户端,并且在尝试更新文档时:

import { RequestParams } from '@elastic/elasticsearch'      
const updateParam: RequestParams.Update = {
      id: '111',
      index: 'myIndex',
      body: {email: 'aaa@aa.ca'},
}
return elasticsearchClient.update(updateParam)

我收到一个错误消息:

{
    "error": {
        "root_cause": [
            {
                "type": "x_content_parse_exception",
                "reason": "[1:2] [UpdateRequest] unknown field [id], parser not found"
            }
        ],
        "type": "x_content_parse_exception",
        "reason": "[1:2] [UpdateRequest] unknown field [id], parser not found"
    },
    "status": 400
}

但是根据此处的文档:https : //www.elastic.co/guide/zh-
CN/elasticsearch/client/javascript-api/current/api-
reference.html#_update

id是输入中的字段

我的请求参数出了什么问题?


问题答案:

此“ id”不是文档内容中的字段。它与“ index”和“
type”一样。更新一个文档时,您无法更改html" target="_blank">索引的名称和类型,因此您无法更改一个文档的id。是文档的标识。但是,如果您有一个名为“
id”的字段,则可以像这样进行更新。



 类似资料:
  • 问题内容: 使用以下代码建立索引时,由于找不到未知字段解析器而产生错误: 问题答案: 广场外面,而不是嵌套在- https://www.elastic.co/guide/en/elasticsearch/reference/current/docs- reindex.html

  • 谢谢大家。 我有一个包含7张的谷歌电子表格。我试图将最后一张工作表中的数据从单元格A1: D1移动到附加到同一工作表底部的新行。 下面是我正在使用的代码片段: 在我运行代码后,在标签“薪资检查历史记录”中,在工作表底部的新行中,我得到以下内容:“[Ljava.lang.对象;@3e0d05f9” 有人能告诉我(a)这个错误是什么,(b)这意味着什么,以及(c)我如何修复这个问题或实现我的目标,即“

  • 问题内容: 直到今天,当我从Windows计算机导入以下代码时,此代码仍有效: 在不带引号的字段中看到换行符-是否需要以通用换行模式打开文件? 如何解决此问题? 问题答案: 很高兴看到csv文件本身,但这可能对你有用,请尝试一下,替换: 与: 或者,使用打开文件universal newline mode并将其传递给csv.reader,例如: 或者,splitlines()像这样使用:

  • 我有两个实体具有@OneTomany(Entity1)&@ManyToOne(Entity2)双向关系。在@OneTomany关系中,我有@Cascading{Cascade.All}。但是当我在事务或方法中将具有@ManyToOne关系的实体的初始为false的boolean属性更改为true,然后又变回false时,它会导致数据库触发更新查询,将实体的boolean设置为false,这似乎是错

  • 问题内容: 我想在每个更新时间将一个对象添加到字段中。 例如,我有一个文档: 下次,我想在测试字段中添加一个对象并保存旧对象。结果是: 如何实现? 编辑 我使用脚本: 但是,我得到了例外: 编辑 现在,我想添加一个字段以确保更新或插入对象。例如: 当我更新字段时,当id存在时,我将更新对象。相反,我将插入对象。 问题答案: 我建议尝试这样的脚本,该脚本在参数中带有两个参数。它将检查任何嵌套对象是否

  • 问题内容: ElasticSearch文档尚不清楚如何执行此操作。 我索引了一些推文,其中一个字段created_at被索引为字符串而不是日期。我找不到如何通过curl调用对该更改重新索引。如果重新编制索引是一个复杂的过程,那么我宁愿只是删除其中的内容并重新开始。但是,我也找不到如何指定字段类型! 任何帮助是极大的赞赏。 问题答案: 您需要使用Put Mapping AP I 定义映射。 日期可以