Elasticsearch geo_point mapping в laravel - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь отобразить мои местоположения как 'geo_point'. Я использовал mysql DB для хранения данных типа точки как 'location'. Вот коды моей модели - «GeoSearch».

`protected $mapping = [
    'properties' => [
        'id' => [
            'type' => 'integer',
            'index' => 'not_analyzed'
        ],
        'Address' => [
            'type' => 'string',
            'analyzer' => 'english'
        ],
        'city' => [
            'type' => 'string',
            'analyzer' => 'english'
        ],
        'area' => [
            'type' => 'string',
            'analyzer' => 'english'
        ],
        'location' => [
            'type' => 'geo_point',
            'ignore_malformed' => true
        ],
    ]
];` 

Но, когда я попытался проиндексировать с помощью scout, php artisan scout:import "App\GeoSearch", появляется следующая ошибка.

"type":"illegal_argument_exception","reason":"mapp er [location] of different type, current_type [text], merged_type [geo_poin t]"}]

Вот пример моих данных. Поскольку location хранится как пространственный тип данных POINT, он отображается в байтовой строке.
{ "id": 32817, "longitude": "90.36189739", "latitude": "23.80241151", "Address": "abc", "city": "X", "area": "Y", "location": "0x000000000101000000B2A3AB53299756404C6239D76ACD3740", }

Заранее спасибо:)

...