Laravel中的Elasticsearch geo_point映射

时间:2019-03-22 08:41:43

标签: laravel elasticsearch mapping geopoints

我正在尝试将我的位置映射为“ geo_point”。我使用mysql DB将点类型数据存储为“位置”。这是我的模型“ 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
        ],
    ]
];` 

但是,当我尝试使用侦察器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]"}]

这是我的数据示例。由于“位置”存储为空间数据类型“ POINT”,因此以字节字符串形式显示。
{ "id": 32817, "longitude": "90.36189739", "latitude": "23.80241151", "Address": "abc", "city": "X", "area": "Y", "location": "0x000000000101000000B2A3AB53299756404C6239D76ACD3740", }

先谢谢了:)

0 个答案:

没有答案