2012-05-23 19 views
16

Próbuję uzyskać histogram dla niektórych zdarzeń, które mam indeksowane, ale chcę tylko w odpowiedzi "wyniki facet", a nie wyniki wyszukiwania + facet.ElasticSearch facet wyniki bez dokumentu

To jest przykład zapytania biegnę:

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

Tak więc w wyniku Chcę mieć tylko

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

część, bez wszystkich dokumentów spełniających warunki kwerendy .

Czy to możliwe?

Wielkie dzięki.

Odpowiedz

28

Można użyć 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" 
     } 
    } 
    } 
} 
' 

Alternatywnie, można ustawić "size":0 do zapytania, ale będzie mniej skuteczny:

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 
} 
' 
+0

search_type = count obecnie nie zaleca się od https: // www.elastic.co/guide/en/elasticsearch/reference/current/breaking_21_search_changes.html – ymonad

Powiązane problemy