Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Traackr Twitter Staalkr
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Build proudly by Traackr at ElasticSearch Hackday (#ESHackDay) at Rackspace (03/28/2012)


Installing The Twitter River

TRAACKR has patched the Twitter River to capture more meta-data from Tweets than originally specified by the current version of the Twitter River. For our version of the Twitter River:

Installing Our Custom Scoring Plugin

1) Install the ElasticSearch JavaScript plugin: $ bin/plugin -install elasticsearch/elasticsearch-lang-javascript/1.1.0

2) Install the custom scoring JS files $ mkdir -p config/scripts/com/traackr/elasticsearch/ Copy score.js, score.mvel, and scoreTweets.js into this directory

Creating The Twitter River & Index

Have the following information ready:

  • The bounding box of a location you'd like to "STAALK". You need two points: lower-left geo-coordinates, and upper-right geo-coordinates. - Note: Right clicking on a Google Map and selecting "What's Here" will bring up a new view of the map with the Lat/Long
  • Your Twitter Information
  • Your CloudMade API Key
  • Your $HOST and $INDEX_NAME

While ElasticSearch is running, run the following command:

curl -XPUT $HOST:9200/_river/$INDEX_NAME/_meta -d ' { "type" : "twitter", "twitter" : { "user" : "$TWITTER_USER", "password" : "$TWITTER_PASS", "filter":{ "locations" : "$LOWER_LEFT_LONGITUDE,$LOWER_LEFT_LATITUDE,$UPPER_RIGHT_LONGITUDE,$UPPER_RIGHT_LATITUDE" } }, "index" : { "index" : "$INDEX_NAME", "type" : "status", "bulk_size" : 1 }, "mappings" : { "status" : { "_ttl" : { "enabled" : true, "default" : "$TTL_TIMEFRAME" } } } } ' $TWITTER_USER: twitter username $TWITTER_PASS :twitter password $LOWER_LEFT/$UPPER_RIGHT_LONGITUDE/LATITUDE: bounding box coordinates $INDEX_NAME: whatever you want to name your index $TTL_TIMEFRAME: formatted duration: e.g. 1s, 3h, 4d, 5M How long the tweet will remain in the database


In the index.html file, the Staalkr app is initialized with the following parameters:

           esHost: "localhost:9200", // HOST and PORT
           esIndex: "my_index", // INDEX NAME
           cloudMadeKey: "xxxxxxxxxxxxxxxxxxxxxxx", // CLOUD MADE API KEY
           mapLat : 40.764421, // STARTING LATITUDE ON MAP
           mapLong :-73.525314,  // STARTING LONGITUDE ON MAP
           mapZoomLevel: 11, // MAP ZOOM LEVEL (0-18 Ascending Zoom)
           influenceThresh: 0, // INFLUENCE PERCENTAGE THRESHOLD (Filter out anyone below this score)
Something went wrong with that request. Please try again.