2016-07-07 12 views
1

Ich muss "Join" zwischen 2 Indizes (Tabellen) tun und Preform eine Überprüfung auf bestimmte Feld auf Dokumente, die in beiden Indizes vorhanden ist.Elasticsearch "Join" -Tabellen

Ich möchte Bedingung wie "dateExpiry" unten hinzufügen, aber ich bekomme einen Fehler. Ist es möglich, 2 oder mehr Indizes zu verbinden?

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" 
       } 
       } 
      } 
      } 
     } 
     ] 
    } 
    } 
} 
+0

Elasticsearch macht keine klassischen "Join" s. –

Antwort

0

Filter innerhalb einer Terms Query Lookup werden derzeit nicht unterstützt. Elasticsearch hat jedoch einige großartige Dokumentation zu Joins/Beziehungen here.

Ihre beste Wette besteht darin, zwei Abfragen für Elasticsearch auszuführen - eine, um die Liste der TagIds abzurufen, und eine andere, die die Liste als Ausschlussklausel enthält.