- Log-in into your ElasticSearch sandbox
- Make sure elastic search is running:
sudo service elasticsearch restart
- Populate few sample movie data:
curl https://elasticsearch-courseware.icssolutions.ca/examples/data-sets/movies.txt -o movies.txt
curl -XPOST 'localhost:9200/_bulk' -H 'content-type: application/json' --data-binary "@movies.txt"
- Confirm there are some records to search on:
curl 'localhost:9200/movies/movies/_search?pretty=true'
- Let's aggregate on actor name
curl -XPOST 'localhost:9200/movies/movies/_search?pretty=true' \
-H 'content-type:application/json' \
-d '
{
"size": 0,
"aggs": {
"actor_name": {
"terms": {
"field": "Starring.CastCrewName.keyword"
}
}
}
}'
- What buckets did you get?
- How do I get more than 10 buckets? Check StackOverflow posting!
- What is 'sum_other_doc_count' field?
- Let's find out average movie rating for the actor:
curl -XPOST 'localhost:9200/movies/movies/_search?pretty=true' \
-H 'content-type:application/json' \
-d '
{
"size": 0,
"aggs": {
"actor_name": {
"terms": {
"field": "Starring.CastCrewName.keyword"
},
"aggs": {
"rating": {
"avg": {
"field": "StarRating"
}
}
}
}
}
}
'
- Take a moment to understand the variety of aggregation types
- Pick an aggregation we did not cover in the slides and make it work