Wie macht man eine "Join" / "Sub-Abfrage" mit ElasticSearch?

8

Ich bin neu in ElasticSearch, und ich würde gerne eine Abfrage für einen Index durchführen können, der dann einen Teil des Ergebnisses verwendet, um eine andere Abfrage auszuführen.

Zum Beispiel haben wir einen tags Index, den wir nach einem passenden Tag abfragen können. Dieser Index enthält gespeicherte Felder, die den Inhalt identifizieren, mit dem er verknüpft ist (verknüpft mit). Jeder Inhaltstyp hat seinen eigenen Index. Ich muss in der Lage sein, nach einer Tag-Übereinstimmung zu fragen, und muss nicht nur das Tag-Ergebnis zurückgeben, sondern auch ein gespeichertes Feld (in diesem Fall title ) von dem Inhalt, mit dem es verknüpft ist (anderer Index).

    
Spot 26.11.2013, 23:18
quelle

1 Antwort

5

Ich stand vor einem ähnlichen Problem. Sie brauchen hier einen Beitritt. Elasticsearch Team empfiehlt, Anwendungsseite zu verwenden. ES emuliert eine relationale Datenbank durch Implementierung von Joins in unserer Anwendung: Ссылка Sie können also einen beliebigen ES-Client verwenden und etwas ähnliches schreiben

%Vor%

Hier gibt die Funktion getMethodResultEntity das Ergebnis einer anderen get-Abfrage zurück.

P.S. Ich benutze hier ES Java Client. Es ist ein bisschen schwer. Wenn Sie einen Java-Client benötigen, ist es besser, den jest-Client zu verwenden - viel leichtere Version für eine einfache Situation.

    
Yana Mykhailenko 02.12.2014 10:32
quelle

Tags und Links