2016-11-02 2 views
0

elasticsearch를 사용하여 다음 요청을 처리하기 만하면됩니다. SQL에서ElasticSearch 수행 방법 Distinct 선택

:

Select distinct(id) from my_table where userid = '20' or activity = '9'; 

난 그냥이 : 사전 :) 당신은 거의 다

답변

2

에서

{ 
    "query" : { 
     "bool" : { 
       "should" : [ 
        { "term" : { "userid" : "20" } }, 
        { "term" : { "activity" : "9" } } 
       ] 
     } 
    } 
} 

감사합니다, 당신은 단순히 쿼리에 terms aggregation를 추가해야

{ 
    "query" : { 
     "bool" : { 
       "should" : [ 
        { "term" : { "userid" : "20" } }, 
        { "term" : { "activity" : "9" } } 
       ] 
     } 
    }, 
    "aggs":{ 
     "unique_ids": { 
      "terms": { 
       "field": "id" 
      } 
     } 
    } 
} 
+0

감사합니다. 완벽 :) – DyM

+0

다행스럽게 도와 줬어! – Val

+0

@Val 이렇게하면 "Fielddata가 기본적으로 텍스트 필드에서 비활성화됩니다. 역 색인을 반전 해제하여 메모리에 Fielddata를로드하려면 fielddata = true로 설정하십시오. 그러나 중요한 메모리를 사용할 수 있습니다." 모든 아이디어는 대기열을 수정하여 그것을 피하는 방법.? 또한 mabye를 정의하는 것이 가능하지 않습니다. 고유 한 요소가 던져지지 않고 어쩌면 하나의 필드를 취하고 다른 필드를 취할 수도 있습니다. – aholbreich