gpt4 book ai didi

elasticsearch - elasticSearch python API:put_mapping时出错

转载 作者:行者123 更新时间:2023-12-02 23:52:47 24 4
gpt4 key购买 nike

我是Elasticsearch的新手,想使用官方的Python API。我有以下代码:

from elasticsearch import Elasticsearch

es = Elasticsearch(timeout=60)
es.indices.create(index='test')

mapping={
"mappings": {
"user": {
"properties": {
"name": { "type": "text" },
"user_name": { "type": "keyword" },
"email": { "type": "keyword" }
}
},
"tweet": {
"properties": {
"content": { "type": "text" },
"user_name": { "type": "keyword" },
"tweeted_at": { "type": "date" }
}
}
}
}
es.indices.put_mapping(index='test',body=mapping)

但是我得到以下错误:

RequestError:RequestError(400,'mapper_parsing_exception','根映射定义具有不受支持的参数:[mappings:{tweet = {properties = {tweeted_at = {type = date},user_name = {type = keyword},content = {type =文字}}},用户= {属性= {用户名称= {类型=关键字},名称= {类型=文字},电子邮件= {类型=关键字}}}}]')

该映射复制自: https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html

谁能帮忙弄清楚这里出了什么问题?

非常感谢

最佳答案

该错误告诉您正在使用的映射格式有问题。

怎么了?

  • 格式对于ES 7.x无效(无类型API:您不应在映射中指定任何文档类型)
  • 此映射定义自ES 6.0以来不支持的两种文档类型

  • 如果您使用的是ES 7(查看错误消息的情况似乎如此),则应使用以下映射:
    PUT twitter
    {
    "mappings": {
    "properties": {
    "type": { "type": "keyword" },
    "name": { "type": "text" },
    "user_name": { "type": "keyword" },
    "email": { "type": "keyword" },
    "content": { "type": "text" },
    "tweeted_at": { "type": "date" }
    }
    }
    }

    或者使用两个不同的索引,一个用于用户,另一个用于推文。
    PUT user
    {
    "mappings": {
    "properties": {
    "name": { "type": "text" },
    "user_name": { "type": "keyword" },
    "email": { "type": "keyword" }
    }
    }
    }
    PUT tweet
    {
    "mappings": {
    "properties": {
    "user_name": { "type": "keyword" },
    "content": { "type": "text" },
    "tweeted_at": { "type": "date" }
    }
    }
    }

    关于elasticsearch - elasticSearch python API:put_mapping时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56556306/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com