2017-10-14 1 views
0

Struggling mit Inner-Hits auf elasticsearch. Würde mich über jede Hilfe freuen.Elasticsearch inner-hits auf Kindtyp nicht in der Abfrage

Ich habe zwei untergeordnete Typen: childA und childB. Ich abfragt Eltern von Childa wie diese

"query":{ 
    "bool": { 
     "should": { 
      "has_child": { 
       "type": "ChildA", 
       "query": { 
        "match": { 
         "name": { 
          "query": "a" 
         } 
        } 
       } 
      } 
     } 
    } 
} 

Mein Problem ist, wie in den Ergebnissen alle untergeordneten Dokumente des Typs childB umfassen auch ohne Ergebnisse aus der obigen Abfrage zu beeinflussen.

Ich dachte, innere Treffer für eine Abfrage has_child (Typ childB) dafür zu verwenden, aber meine Abfrage hängt nicht vom Typ childB ab.

Jeder hat eine Idee?

Vielen Dank im Voraus

+0

Es ist nicht klar, was Sie archivieren möchten. –

+0

@TarasKohut Sorry meine Frage wurde nicht gut angegeben. Ich habe tatsächlich einen Weg gefunden. Es ist unter –

+0

veröffentlicht. Bitte fügen Sie Ihr Mapping und einige Beispiele Ihrer Daten hinzu. Vielleicht könnten wir Ihnen eine bessere Lösung anbieten, die Ihr Problem anspricht. – Eli

Antwort

0

ich einen Weg gefunden childB Typ docs aufzunehmen.

Ich kombiniere die folgende Abfrage mit der obigen Abfrage (has_child auf childA Typ) in einer Filterabfrage, um auch ChildB Dokumente zu bekommen. Ich bin nicht wirklich sicher, ob es ein guter Weg ist (über Leistung nachdenken)

{ 
     "query":{ 
     "bool":{ 
      "should":[ 
      { 
       "bool":{ 
       "must_not":[ 
        { 
        "has_child":{ 
         "type":"ChildB", 
         "query":{ 
         "match_all":{} 
         }, 
         "inner_hits":{} 
        } 
        } 
       ] 
       } 
      }, 
      { 
       "has_child":{ 
       "type":"ChildB", 
       "query":{ 
        "match_all":{} 
       }, 
       "inner_hits":{} 
       } 
      } 
      ] 
     } 
     } 
    } 
Verwandte Themen