Executing terms facets
The terms facet is one of the most used ones. It counts the terms that are in a field of resulting hits. This facet is often used to drill down search.
Getting ready
You need a working ElasticSearch cluster and an index populated with the script available in the online code.
How to do it...
For executing a term facet, we will perform the steps given as follows:
We want to calculate the tag count of all the documents: the REST call should be:
curl -XGET 'http://127.0.0.1:9200/test-index/test-type/_search?pretty=true&size=0' -d '{ "query": { "match_all": {} }, "facets": { "tag": { "terms": { "field": "tag", "size": 10 } } } }'
In this example, we need to match all the items, so the
match_all
query is used.The result returned by ElasticSearch, if everything is all right, should be:
{ "took" : 2, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, ...