【问题标题】:TTL in elasticsearchelasticsearch中的TTL
【发布时间】:2017-03-04 09:18:58
【问题描述】:

我正在使用 elasticsearch python 客户端创建数据并将其存储到 aws elasticsearch 实例。

def create_index():
    """
        create mapping of data
    """
    mappings = '''
    {
        "tweet":{
            "_ttl":{
                "enabled": true,
                "default": "2m"
            },
            "properties": {
                "text":{
                    "type": "string"
                },
                "location":{
                    "type": "geo_point"
                }
            }
        }
    }
    '''
    # Ignore if index already exists
    es.indices.create(index='tweetmap', ignore=400, body=mappings)

如上所述,现在我希望记录会在 2 分钟后自动删除,但它们会持续存在。

可能的原因是什么?

【问题讨论】:

  • 您的意思是 2 分钟,而不是 2 秒。此集群是否使用 Shield?
  • 是的,我的意思是 2 分钟。我对弹性搜索很陌生,所以不完全理解盾牌。我该如何检查?
  • @AndreiStefan aws.amazon.com/blogs/aws/new-amazon-elasticsearch-service 说 AWS ES 目前不支持 Shield 插件,所以我猜你的问题的答案应该是否定的?
  • 如何将文档添加到 ES 中(提供完整的命令来添加您希望删除的文档)?你能举一个没有删除但应该删除的文件的例子吗? (使用GET /YOUR_INDEX_NAME/tweet/NOT_DELETED_DOCUMENT_ID?fields=_ttl

标签: python elasticsearch elasticsearch-plugin


【解决方案1】:

我定义映射的方式有错误,如下所示进行更正:

mappings = '''
    {
        "mappings":{
            "tweet":{
                "_ttl":{
                    "enabled": true,
                    "default": "1d"
                },
                "properties": {
                    "text":{
                        "type": "string"
                    },
                    "location":{
                        "type": "geo_point"
                    }
                }
            }
        }
    }
    '''

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多