2017-04-25 1 views
0

글쎄, 나는 두 배의 배열로 geopoints 문서가있는 인덱스가 있습니다. 하지만 경도와 위도가 잘못된 순서로 표시되는데, 즉 [lon, lat] 대신 [lat, lon]과 같은 배열이 표시됩니다. 인덱스를 다시 만들 필요없이 인덱스의 모든 문서에서 이러한 값을 전환 할 수있는 방법이 있습니까? 또는 지오 포인트의 형식을 배열에서 문자열로 변경하면 해당 데이터가 "lat, lon"이됩니까? 지금까지 내가 찾은 해결책은 전체 데이터 세트를 다시 만드는 것이 었습니다.이 경우에는 실용적으로 시간이 많이 걸립니다.elasticsearch 인덱스에서 geopoint 좌표를 바꿈

답변

2

당신은 모든 문서를 업데이트하고 다음과 같이 좌표를 교환하기 위해 update by query API을 사용할 수 있습니다 :이 같은 뭔가를하려고했던 어떤 이유로

POST your_index/_update_by_query 
{ 
    "script": { 
    "inline": "ctx._source.location = [ctx._source.location[1], ctx._source.location[0]]", 
    "lang": "painless" 
    }, 
    "query": { 
    "match_all": {} 
    } 
} 
+0

감사합니다 :)하지만, 작동하지 않는 ; 나는 값을 바꾼 배열 대신 문자열을 갖기 위해 파일 위치를 업데이트하려고했다. 그러나 잘,이 하나는 완벽하게 작동했습니다. –

+0

신난다. 다행이다. – Val

관련 문제