Результаты эластического поиска без документа - программирование
Подтвердить что ты не робот

Результаты эластического поиска без документа

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

Это пример запроса, который я запускаю:

curl -XGET 'http://localhost:9200/main/events/_search?pretty=true' -d '
{
   "facets" : {
    "histo1" : {
       "query" : {
            "query_string" : {"query":"*:*"}
        },
         "date_histogram" : {
            "field" : "time",
            "interval" : "minute"
        }
    }
  }
}
'

Итак, в результате я хочу иметь только

"facets" : {
"histo1" : {
  "_type" : "date_histogram",
  "entries" : [ {
    "time" : 1337700000,
    "count" : 76
  } ]
}

без всех документов, соответствующих запросу.

Возможно ли это?

Большое спасибо.

4b9b3361

Ответ 1

Вы можете использовать count search_type:

curl -XGET 'http://localhost:9200/main/events/_search?search_type=count&pretty=true' -d '
{
  "facets" : {
    "histo1" : {
       "query" : {
            "query_string" : {"query":"*:*"}
        },
         "date_histogram" : {
            "field" : "time",
            "interval" : "minute"
        }
    }
  }
}
' 

В качестве альтернативы вы можете установить "size":0 в свой запрос, но он будет менее эффективным:

curl -XGET 'http://localhost:9200/main/events/_search?pretty=true' -d '
{
  "facets" : {
    "histo1" : {
       "query" : {
            "query_string" : {"query":"*:*"}
        },
         "date_histogram" : {
            "field" : "time",
            "interval" : "minute"
        }
    }
  },
  "size":0
}
'