2012-08-31 6 views
6

나는 두 개의 서로 다른 필드의 조합 (위도 및 경도)탄성 검색 이중면

curl -XGET http://www.my_server:9200/idx_occurrence/Occurrence/_search?pretty=true -d '{ 
    "query": { 
     "query_string" : { 
      "fields" : ["genus_interpreted","dataset"], 
      "query": "Pica 2", 
      "default_operator" : "AND" 
     } 
    }, 
    "facets": { 
     "test": { 
      "terms": { 
       "fields" :["decimalLatitude","decimalLongitude"], 
       "size" : 500000000 
      } 
     } 
    } 
}' 

그것은 ... 어떤 예상보다 결과의 두 배 수를 제공하여 어떤 그룹 데이터 탄성 검색 쿼리를 실행하려면 생각? 대답의 더 relevants 부품은

...

_shards":{ 
    "total":5, 
    "successful":5, 
    "failed":0 
}, 
"hits":{ 
    "total":**37**, 
    "max_score":3.9314494, 
    "hits":[{ 

총 안타, 37 내가 측면을 적용하지 않을 경우 쿼리의 결과입니다. 이 총은 측면에서 전체의 절반

"facets":{ 
    "test":{ 
     "_type":"terms", 
     "missing":0, 
     "total":**74**, 
     "other":0, 
     "terms":[ 
      {"term":"167.21665954589844","count":5}, 
      {"term":"167.25","count":4}, 
      {"term":"167.14999389648438","count":4}, 
      {"term":"167.1041717529297","count":4}, 
      {"term":"-21.04166603088379","count":4},..... 

그래서, 패싯 그룹이 (경도에 의해 다음 위도에 의해) separetely 이루어집니다 (아래 참조).

여러 레코드가 위도 (경도가 다름) 또는 viceversa를 공유 할 수 있으므로 위도 또는 경도 만 그룹화 할 수 없습니다.

+0

당신은 당신이 얻을 출력을 표시 할 수 있습니다 : 여기에, 그것을 시도를 제공 도움이 예는? – CharlesB

+0

나는 정말로 질문을 해결한다고 생각지 않는 대답을 받아 들일 수 없다 ... – user1249791

답변

4

위도와 경도와 같은 여러 필드에서 TermsFacet을 작성합니다. 즉, 위도와 경도는 고유 한 필드이므로 함께 집계됩니다. 위도 또는 경도 일 수있는 각 단일 값에 대한 항목이 표시됩니다. 74 개의 항목을 다시 얻은 사실은 색인에 74 개의 다른 위도와 경도 값이 있음을 증명합니다. 정확히 달성하기를 원하십니까? 각 위도 경도 쌍에 대한 하나의 패싯 엔트리?

  • 그것에면 다음 쌍 자체를 포함하는 인덱스에 추가 필드를 추가
  • 용어 스크립트를 사용하여 즉석에서 latitue 경도 쌍을 만들기 :이 경우 두 가지 옵션이 있습니다. 더 알고 싶다면 documentation을보십시오.
{ 
    "query" : { 
     "match_all" : { } 
    }, 
    "facets" : { 
     "tags" : { 
      "terms" : { 
       "field" : "latitude", 
       "script" : "term + \"_\" + _source.longitude" 
      } 
     } 
    } 
} 
+0

정확히 동일한 위치 (위도와 경도)를 공유하는 모든 데이터를 그룹화하기 위해 정확히 달성하고 싶다. 새로운 필드를 추가하는 것은 약간 복잡하므로 그룹핑을 위해 위도와 경도를 즉석에서 연결하고 싶습니다. ... "용어": { "필드": "decimalLatitude", "decimalLongitude", "스크립트": "용어 [1]", "크기": 500 작품, 용어 참조 [1] to decimalLongitude,하지만 전혀 필요하지 않습니다. 사실, 용어 [0] term [1]에 가입 할 수 있더라도 인덱스에있는 것과 비교할 수 없기 때문에 전혀 이해할 수 없습니다. – user1249791

+0

업데이트 된 답변을 살펴보십시오. – javanna

+0

정확하게 필요한 것, 감사합니다! – user1249791