弹性搜索:ES-PHP客户端如何创建GEOPOINT索引

时间:2017-09-26 13:07:38

标签: elasticsearch kibana

我正在尝试使用Elastic Search PHP客户端创建一个应该包含GEOPoint的索引 - > https://www.elastic.co/guide/en/elasticsearch/client/php-api/5.0/index.html

我的代码如下

    $params = [
         'index' => 'sweden_codes',
         'type' => 'sweden_c',
         'body' => [
                    'mappings' => [
                        'location' => [
                            'properties' => [
                                'pin' => [
                                    'properties' => [
                                        'location' => [
                                            'type' => 'geo_point'
                                        ]
                                    ]
                                ]
                             ]
                        ],
                        'text' => $code->City,
                        'pin' => [
                            'location' => [
                                'lat' => $code->Latitude,
                                'lon' => $code->Longitude
                            ]
                         ]
                    ]
                ]
            ];
      $client = ClientBuilder::create()
               ->setSSLVerification(false)
               ->setHosts(["elasticsearch:9200"])->build();

问题是,当我进入kibana时,它说"没有兼容字段:" sweden_codes" index pattern不包含以下任何字段类型:geo_point"

任何人都可以请一看这个问题,让我知道我的映射和索引创建有什么问题

以下是适用于我的映射代码

   $params = [
            'index' => 'sweden_postal_codes',
            'body' => [
                'mappings' => [
                    'codes' => [
                        'properties' => [
                            'location' => [
                                'type' => 'geo_point'
                            ],
                            'city' => [
                                'type' => 'string'
                            ]
                        ]
                    ]
                ]
            ]

        ];

        $client = ClientBuilder::create()
            ->setSSLVerification(false)
            ->setHosts(["elasticsearch:9200"])->build();

        // Adding the index into the ES Cluster

         $response = $client->indices()->create($params);

以下是适用于我的文档索引编码

 $params = [
            'index' => 'sweden_postal_codes',
            'type' => 'codes',
            'id' => 2,
            'body' => [
                'location' => [
                    'lat' => 30.5268956,
                    'lon' => 79.2289643
                ],
                'city' => 'Stockholm'
            ]
        ];

        $client = ClientBuilder::create()
            ->setSSLVerification(false)
            ->setHosts(["elasticsearch:9200"])->build();

        // Adding the index into the ES Cluster

        $response = $client->index($params);

0 个答案:

没有答案