ElasticSearch - 重新索引以添加doc_value

时间:2015-06-14 12:53:06

标签: elasticsearch

我想做什么?

将doc_type添加到现有索引。

我尝试了什么?

创建索引和文档

POST /my_index-1/my_type/1
{
    "my_prop": "my_value"
}

添加了模板

PUT /_template/my_template
{
    "id": "my_template",
    "template": "my_index-*",
    "mappings": {
        "_default_": {
            "dynamic_templates": [
                {
                    "my_prop_template": {
                        "mapping": {
                            "index": "not_analyzed",
                            "doc_values": true,
                            "fielddata": {
                                "format": "doc_values"
                            },
                            "type": "string"
                        },
                        "match": "my_prop",
                        "match_mapping_type": "string"
                    }
                }
            ]
        }
    }
}

重新索引

./stream2es es --source http://localhost:9200/my_index-1 --target http://localhost:9200/my_index-2

出了什么问题?

在新索引my_index-2中,该媒体资源未收到"doc_values": true

...
"properties": {
    "my_prop": {
        "type": "string"
    }
}
...
  • 为了理智,我还尝试将相同的文档添加到my_index-3,它得到"doc_values": true

我的问题

如何使用"doc_values": true重新索引旧索引?

1 个答案:

答案 0 :(得分:0)

谢谢@Val! Logstash确实解决了这个问题。

stream2eselasticsearch-reindex都创建了新的映射,没有“doc_values”:true。