PHP中的Elasticsearch映射类型

时间:2019-06-03 09:55:10

标签: php elasticsearch elasticsearch-php

我想使用官方PHP Client连接到我们的Elasticsearch Server(V7.0.0)。 elasticsearch文档指出,映射类型在版本6.0.0中为removed

但是在整个官方的PHP Client文档中,仍然提到并且似乎是必需的(例如):

// Set the index and type
$params = [
    'index' => 'my_index',
    'type' => 'my_type2',
    'body' => [
        'my_type2' => [
            '_source' => [
                'enabled' => true
            ],
            'properties' => [
                'first_name' => [
                    'type' => 'keyword',
                    'analyzer' => 'standard'
                ],
                'age' => [
                    'type' => 'integer'
                ]
            ]
        ]
    ]
];

// Update the index mapping
$client->indices()->putMapping($params);

Source

任何人都可以向我解释为什么在删除类型后仍要使用类型吗?

1 个答案:

答案 0 :(得分:1)

映射types已从Elasticsearch 7.x中删除。在以前的版本(Elasticsearch 6.x中,每个索引仅需要指定一种类型),而在版本2.x - 5.6中,每个索引中可以使用多个类型。请检查您的文档版本。

由于您拥有Elasticsearch 6.0.0,因此需要指定映射类型,但我不确定此API甚至可以与更新版本的Elasticsearch 7.X一起使用

这里是php API的版本矩阵:

Elasticsearch Version   Elasticsearch-PHP Branch
>= 6.6, < 7.0                              6.7.x
>= 6.0, < 6.6                              6.5.x
>= 5.0, < 6.0                                5.0
>= 2.0, < 5.0                         1.0 or 2.0
>= 1.0, < 2.0                         1.0 or 2.0
<= 0.90.x                                    0.4