Skip to content

Instantly share code, notes, and snippets.

@karmi
Created September 26, 2011 16:31
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save karmi/1242664 to your computer and use it in GitHub Desktop.
Save karmi/1242664 to your computer and use it in GitHub Desktop.
Simple Publishing Frequency By Day Of The Week
HOST='http://localhost:9200'
INDEX='articles'
curl -s -X DELETE "$HOST/$INDEX" -o /dev/null
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "1", "published" : "2010-01-01T02:20:00" }' -o /dev/null # fri
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "2", "published" : "2010-01-02T02:20:00" }' -o /dev/null # sat
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "3", "published" : "2010-01-02T08:40:00" }' -o /dev/null # sat
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "4", "published" : "2010-01-03T08:10:00" }' -o /dev/null # sun
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "5", "published" : "2010-01-04T16:20:00" }' -o /dev/null # mon
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "6", "published" : "2010-01-04T16:40:00" }' -o /dev/null # mon
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "7", "published" : "2010-01-04T18:10:00" }' -o /dev/null # mon
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "8", "published" : "2010-01-04T18:10:00" }' -o /dev/null # mon
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "9", "published" : "2010-01-10T18:40:00" }' -o /dev/null # sun
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "10", "published" : "2010-01-12T10:00:00" }' -o /dev/null # tue
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "11", "published" : "2010-01-13T11:05:00" }' -o /dev/null # wed
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "12", "published" : "2010-01-14T12:10:00" }' -o /dev/null # thu
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "13", "published" : "2010-01-14T13:10:00" }' -o /dev/null # thu
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "14", "published" : "2010-01-15T20:00:00" }' -o /dev/null # fri
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "15", "published" : "2010-01-20T20:20:00" }' -o /dev/null # wed
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "16", "published" : "2010-01-20T20:25:00" }' -o /dev/null # wed
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "17", "published" : "2010-01-20T20:30:00" }' -o /dev/null # wed
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "18", "published" : "2010-01-20T15:40:00" }' -o /dev/null # wed
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "19", "published" : "2010-01-22T22:10:00" }' -o /dev/null # fri
curl -s -X POST "$HOST/$INDEX/article" -d '{ "t" : "20", "published" : "2010-01-23T23:05:00" }' -o /dev/null # sat
curl -s -X POST "$HOST/$INDEX/_refresh" -o /dev/null
curl -s -X GET "$HOST/$INDEX/_search?search_type=count&pretty=true" -d \
'{
"query" : {
"match_all" : {}
},
"facets" : {
"by_day_of_week" : {
"terms" : {
"script" : "var days = [null, \"mon\",\"tue\",\"wed\",\"thu\",\"fri\",\"sat\",\"sun\"]; days[doc.published.date.getDayOfWeek()];",
"lang" : "js"
}
}
}
}' | ruby -rubygems -e 'require "yajl"; json = Yajl::Parser.new.parse(STDIN); puts json["facets"]["by_day_of_week"]["terms"].map { |term| %Q|#{term["term"]},#{term["count"]}| }.join("\n")'
@kimchy
Copy link

kimchy commented Sep 26, 2011

This oen should be a bit simpler and faster:

curl -X GET "$HOST/$INDEX/_search?search_type=count&pretty=true" -d \
'{
    "query" : {
        "match_all" : {}
    },
    "facets" : {
        "by_day_of_week" : {
            "terms" : {
              "script" : "doc.published.date.getDayOfWeek()",
              "lang"   : "js"
            }
        }
    }
}'

@karmi
Copy link
Author

karmi commented Sep 26, 2011

Thanks!, updated!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment