Twitter의 Place geo bounding_box 배열에 대한 Elasticsearch 매핑을 만들려고하고 있으며이를 Elasticsearch에서 지역 경계 상자로 색인화 할 수 없습니다. 내 응용 프로그램에서는 Twitter4j에서 원시 JSON을 가져 오지만 경계 상자는 경계 상자를 닫지 않으므로이 테스트의 목적 상 json을 편집하고 닫습니다. 나는 Elastic cloud (ES v5)와 Rest API를 사용하고 Kibana로 시각화하고 있습니다.Twitter 경계 상자의 탄성 검색 색인이 geo_shape로 인식되지 않습니다.
다음은 사용하려는 매핑입니다. "속성"블록을 사용하거나 사용하지 않고 여러 변형을 시도했지만 작동하지 않습니다. 이 맵핑을 사용하면 맵핑을 성공적으로 PUT 할 수 있지만, 문서를 POST 할 때 Kibana는 h 열을 알 수없는 필드 유형으로 인식합니다.
포인트 좌표 필드는 그냥 괜찮은 지오 포인트로 색인화됩니다. 그렇지 않은 경계 상자입니다. 내가 POST (참고로 노력하고 문서의 미리보기
PUT/testgeo 여기
{
"mappings": {
"tweet": {
"_all": {
"enabled": false
},
"properties": {
"created_at": {
"type": "date",
"format": "EEE MMM dd HH:mm:ss Z YYYY||strict_date_optional_time||epoch_millis"
},
"coordinates": {
"properties": {
"coordinates": {
"type": "geo_point",
"ignore_malformed": true
}
}
},
"place": {
"properties": {
"bounding_box": {
"type": "geo_shape",
"tree": "quadtree",
"precision": "1m"
}
}
}
}
}
}
}
됩니다 : 여기
내 매핑 I 수동으로 경계 상자를 닫습니다 5 배열 요소를 추가). 사람이 이유를 확인하고 수정할 수 있습니다 경우POST/testgeo/짹짹
/1{
...
"coordinates": {
"type": "point",
"coordinates": [
0.78055556,
51.97222222
]
},
"place": {
"id": "0c31a1a5b970086e",
"url": "https:\/\/api.twitter.com\/1.1\/geo\/id\/0c31a1a5b970086e.json",
"place_type": "city",
"name": "Bures",
"full_name": "Bures, England",
"country_code": "GB",
"country": "United Kingdom",
"bounding_box": {
"type": "polygon",
"coordinates": [
[
[
0.773779,
51.96971
],
[
0.773779,
51.976437
],
[
0.781794,
51.976437
],
[
0.781794,
51.96971
],
[
0.773779,
51.96971
]
]
]
},
"attributes": {
}
},
, 내가 가장 감사 할 것이다.
참고 1 : : Elastic의 geo_shape 문서 페이지의 매핑 및 문서 예제를 사용하여 Kibana가 위치 필드를 알 수없는 유형으로 다시 표시했습니다.
PUT/testgeo
{
"mappings": {
"tweet": {
"_all": {
"enabled": false
},
"properties": {
"location": {
"type": "geo_shape",
"tree": "quadtree",
"precision": "1m"
}
}
}
}
}
POST/testgeo/짹짹/1
{
"location" : {
"type" : "polygon",
"coordinates" : [
[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]
]
}
}