How to "Join" tables (Lookup)

I need to do "Join" between 2 indexes (tables) and preform a check on specific field on documents that exists in both indexes.

I want to add condition like "dateExpiry" below. Is it possible? Is there other alternatives?


GET cache-*/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "query": {
            "terms": {
              "TagId": {
                "index": "domain_block-2016.06",
                "type": "cBlock",
                "id": "57692ef6ae8c50f67e8b45",
                "path": "TagId",
               "range" : {
               "dateExpiry" : {
                   "gte" :  "20160705T12:00:00"
               }
              }
            }
          }
        }
      ]
    }
  } 
}

ES doesn't do joins. Documents need to be denormalized.

My documents are denormalized. Sometimes you just must do "Join" because it's not right to include unrelated data together in the same index for the matter of "denormalization". I think joins (or some other sort of lookups) are inevitable even in NoSQL databases. mongoDB is already stepping to this direction. Here: Joins and Other Aggregation Enhancements Coming in MongoDB .