Zufälliges Dokument in ElasticSearch

8

Gibt es eine Möglichkeit, eine wirklich zufällige Stichprobe aus einem ElasticSearch-Index zu erhalten? d. h. eine Abfrage, die ein beliebiges Dokument mit der Wahrscheinlichkeit 1/N aus dem Index abruft (wobei N die Anzahl der derzeit indizierten Dokumente ist)?

Und als Folgefrage: Wenn alle Dokumente ein numerisches Feld s haben, gibt es eine Möglichkeit, ein Dokument durch gewichtete Stichproben zu bekommen, dh wo die Wahrscheinlichkeit ist, Dokument i mit Wert s_i zu erhalten ist gleich s_i / sum(s_j for j in index) ?

    
mitchus 17.09.2014, 10:13
quelle

4 Antworten

17

Ich weiß, dass es eine alte Frage ist, aber jetzt ist es möglich zu verwenden random_score , mit der folgenden Suchanfrage:

%Vor%

Für mich ist es sehr schnell mit ca. 2 Millionen Dokumenten.

Ich verwende den aktuellen Zeitstempel als Startwert, aber Sie können alles verwenden, was Sie möchten. Das beste ist, wenn Sie den gleichen Samen verwenden, erhalten Sie die gleichen Ergebnisse. Sie können also die Sitzungs-ID Ihres Benutzers als Startwert verwenden und alle Benutzer haben eine andere Reihenfolge.

    
Adam Wallner 31.10.2016, 23:50
quelle
5

Der einzige Weg, den ich kenne, um zufällige Dokumente aus einem Index zu bekommen (zumindest in den Versionen & lt; = 1.3.1), besteht darin, ein Skript zu verwenden:

%Vor%

Sie können dieses Skript verwenden, um basierend auf einem Feld des Datensatzes eine Gewichtung vorzunehmen.

Es ist möglich, dass sie in Zukunft etwas komplizierteres hinzufügen, aber Sie müssen das wahrscheinlich vom ES-Team anfordern.

    
Alcanzar 17.09.2014 13:46
quelle
3

Sie können random_score mit einer function_score -Abfrage verwenden.

%Vor%

Der schlechte Teil ist, dass dies ein zufälliges Ergebnis auf jedes Dokument anwendet, die Dokumente sortiert und dann das erste zurückgibt. Ich kenne nichts, das schlau genug ist, um ein zufälliges Dokument auszuwählen.

    
JnBrymn 23.10.2015 20:35
quelle
1

Sie können random_score verwenden, um Antworten nach dem Zufallsprinzip zu sortieren oder ein Dokument mit ungefähr 1/N Wahrscheinlichkeit abzurufen.

Zusätzliche Hinweise:

Ссылка Ссылка

    
nycdatawrangler 11.06.2015 21:51
quelle