Я пытаюсь отобразить мои местоположения как '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",
}
Заранее спасибо:)