Aws Elasticsearch: Как изменить тип отображения местоположения {lat: float, lon: float} на geo_point - PullRequest
0 голосов
/ 06 ноября 2019

Может кто-нибудь подсказать мне, чтобы изменить тип отображения местоположения на geo_point .?

Служба: Aws ElasticSearch (версия 6.2) База данных: DynamodB

Я используюСервис упругого поиска aws для фильтрации значений на основе моего местоположения. Согласно документации, я создал триггерную лямбда-функцию dbtoEs, которая представляет собой код Python вскоре после добавления записи в ее индекс.

Так как мой тип местоположения в DynamodB - это тип Location {lat: Float lon: Float}

Когда я иду в Aws ElasticSearch и проверяю в индексах, типом отображения для этого поля также является location {latfloat lon float}

Согласно запросу Elastic geo distance (https://www.elastic.co/guide/en/elasticsearch/reference/6.2/query-dsl-geo-distance-query.html) тип отображения местоположения должен быть geo_point

Пример поискафильтр запросов

    filter:[ 
        { 
          geo_distance:{ 
             distance:"2000 km",
             location:{ 
                  lon:77.676,
                  lat:12.998
              },
           }
        },
      { 
        range:{ 
            createdAt:{ 
            gte:"now-1d/d"
           }
         }
        }
       ],

Поиск ответа

 { 
   "took":4,
   "timed_out":false,
   "_shards":{ 
      "total":5,
      "successful":4,
      "skipped":0,
      "failed":1,
      "failures":[ 
         { 
            "shard":4,
            "index":"spot",
            "node":"*******",
            "reason":{ 
               "type":"query_shard_exception",
               "reason":"failed to find geo_point field 
                         [location]",
               "index_uuid":"**********",
               "index":"***"
            }
         }
      ]
   },
   "hits":{ 
      "total":0,
      "max_score":null,
      "hits":[ 

      ]
   }
}


**Result Required: Filtered results should be based on location**
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...