1

이상적으로 도시 이름에 "London"이 사용 된 횟수를 가져와야합니다. 그러나 쿼리는 "런던"과 "런던"및 "LoNdOn"등 다른 값을 반환합니다. 옵션으로 대소 문자를 구분하지 않고 사용하려고했지만 필요한 결과를 제공하지 않습니다.Druid 쿼리가 대소 문자를 반환하지 않습니다. 집계에 대한 중요하지 않은 결과

여기 내 쿼리입니다,

{ 
"queryType": "topN", 
"dataSource": "wikiticker", 
"dimension":"cityName", 
"granularity": "ALL", 
"metric": "count", 
"threshold": 10, 
"filter": 
     { 
      "type": "search", 
      "dimension": "cityName", 
      "query": { 
       "type": "insensitive_contains", 
       "value": "london",     
       } 
      }, 
"aggregations": [ 
     { 
      "type": "longSum", 
       "name": "count", 
      "fieldName": "count" 
     } 
     ], 
"intervals": ["2014-10-01T00:00:00.000Z/2016-10-07T00:00:00.000Z"] 
} 

을 그리고 여기 내 결과입니다 :

 [ { 
    "timestamp" : "2015-09-12T00:46:58.771Z", 
     "result" : [ { 
     "count" : 21, 
     "cityName" : "London" 
     }, 
     { 
      "count" : 10, 
      "cityName" : "New London" 
     }, 
     { 
      "count" : 3, 
      "cityName" : "london" 
     }, 
     { 
      "count" : 1, 
      "cityName" : "LoNdon" 
     }, 
     { 
      "count" : 1, 
      "cityName" : "LondOn" 
     } ] 
     } ] 

내가 좋아하는 뭔가를 얻어야한다 :

 [ { 
      "timestamp" : "2015-09-12T00:46:58.771Z", 
      "result" : [ { 
      "count" : 26, 
      "cityName" : "London" 
      }, 
      { 
      "count" : 10, 
      "cityName" : "New London" 
      } ] 
     } ] 
+0

그래서 지금 insensitive_contains 나에게 내가 상관없이 검색 키워드에서 제공되는 케이스의 필요로하는 값을 받고,하지만 난 지금에 있습니다 비슷한 단어를 가진 모든 값을 세지 만 서로 다른 경우를 함께 계산하십시오. – Anonymous

답변

0

를 사용하여 필터링 된 애그리 게이터 (aggregator) :

필터링 된 수집기는 주어진 수집기를 래핑하지만 주어진 차원 필터가 일치하는 값만 집계합니다.

{ 
    "type" : "filtered", 
    "filter" : { 
      "type" : "search", 
      "dimension" : cityName, 
      "query": { 
         "type":"contains", 
         "value":"london" 
         }   
      }, 
    "aggregator" : { 
       "type": "count", 
       "name": "Total Count of the Name London" 
       } 
} 

참조

+0

아니요,이 해결책은 효과가 없습니다. 어쨌든 고마워. – Anonymous

관련 문제