2017-02-01 1 views
0

Ich versuche mit elasticsearch Millionen von Daten zu filtern. Alle Daten sind in einem Index und ich möchte direkt darauf zugreifen.Elasticsearch index alias

Was ich mit direktem Weg meine? Direkter Weg bedeutet zum Beispiel den Zugriff auf das 700000. Element dieses Indexes (nicht nach ID). Ist das irgendwie möglich?

Was ich schon versucht:

  • von + Größe funktioniert, aber scheint nicht schnell zu sein, wenn Anzahl der Elemente> 10000
  • Scrolling ich nicht probiert, aber es ist irgendwie scheinen nicht das Richtige für meinen Anwendungsfall.

Also irgendwelche anderen Ideen?

+0

Und was ist Ihr Anwendungsfall, dass Sie genau 700000. Element des Index zugreifen müssen? In den meisten Fällen (wenn Sie alles abrufen möchten) ist das Scrollen die beste Option. – JiriS

+0

Mein Anwendungsfall ist ziemlich einfach. Ich habe eine Tabelle, die alle Elemente meines Indexes darstellt. So kann ich nicht alle Elemente im Speicher laden, ich möchte die Elemente faul laden. Die Tabelle sagt mir nur, welches Element benötigt wird und dann möchte ich das Element von elasticsearch holen. – rage

Antwort

0

Scrollen funktioniert nicht. Das wird alle Daten holen.

Ich denke, elasticseach ist nicht der richtige Anwendungsfall für das, was Sie tun möchten.

Es wäre besser, eine verknüpfte Liste der IDs zu verwenden, mit denen Sie die ID nach Index abrufen und dann elasticsearch abfragen können, um die Daten zu erhalten.

Wenn Ihre Daten nicht geändert oder gelöscht werden, können Sie ein zusätzliches Feld im Mapping hinzufügen, das wie ein Autoinkrementfeld in einer Datenbank funktioniert. Sie können die Daten über dieses Feld abrufen.

Verwandte Themen