Запрос Druid не возвращает регистр. Нечувствительные результаты для агрегирования счетчика.

В идеале мне нужно подсчитать, сколько раз слово «Лондон» используется в названии города. Но запрос возвращает разные значения для «london» и «London», «LoNdOn» и так далее. Я пробовал использовать Case Insensitive в качестве опции, но это не дало мне требуемого результата.

Вот мой запрос,

 {
"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"
           }  ]
       } ]

person Anonymous    schedule 17.03.2017    source источник
comment
Итак, теперь Insensitive_contains дает мне значения, которые мне нужны, независимо от случая, в котором предоставляется ключевое слово для поиска, но теперь мне нужно подсчитать все значения с похожими словами, но в разных случаях вместе, а не по отдельности   -  person Anonymous    schedule 17.03.2017


Ответы (1)


Воспользуйтесь отфильтрованным агрегатором:

Фильтрованный агрегатор обертывает любой заданный агрегатор, но агрегирует только те значения, которым соответствует данный фильтр измерения.

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

Ссылки

person Paul Sweatte    schedule 14.04.2017