Wenn eine Anfrage eingeht, durchsucht die Anwendung zunächst den Elasticsearch-Index nach relevanten Dokumenten. Dies wird erreicht, indem für die Frage ein dünnbesetzter Vektor erzeugt und anschließend im Index nach den ihr am nächsten liegenden Einbettungen gesucht wird, die jeweils mit einer Passage eines Dokuments verknüpft sind.

Wie schon in der Aufnahmephase wird der Elasticsearch-Index über die ElasticsearchStore -Integration mit Langchain verwaltet:

Das Generieren eines Embeddings für die Frage und die anschließende Suche danach werden durch die invoke() -Methode der Retriever-Schnittstelle von Langchain elegant abstrahiert. Diese Methode führt alle diese Aufgaben aus und gibt die Liste der relevantesten gefundenen Dokumente zurück:

Hier können Sie sehen, wie die zurückgegebenen Passagen als Quellen an den Client gesendet werden. Die React-Anwendung zeigt diese als „Suchergebnisse“ unterhalb der Antwort an.

Wichtig ist zu beachten, dass das Argument strategy , das in der Klasse ElasticsearchStore verwendet wird, mit der Strategie übereinstimmen muss, die während der Datenerfassung verwendet wird. In diesem Beispiel erzeugt und durchsucht die Funktion SparseVectorRetrievalStrategy dünnbesetzte Vektoren aus dem ELSER-Modell von Elastic. Eine weitere interessante Option, die Sie auswerten können, ist die Verwendung von ApproxRetrievalStrategy, das dichte Vektoreinbettungen verwendet.

Sind Sie bereit, hochmoderne Sucherlebnisse zu schaffen?

Eine ausreichend fortgeschrittene Suche kann nicht durch die Bemühungen einer einzelnen Person erreicht werden. Elasticsearch wird von Datenwissenschaftlern, ML-Ops-Experten, Ingenieuren und vielen anderen unterstützt, die genauso leidenschaftlich an der Suche interessiert sind wie Sie. Lasst uns in Kontakt treten und zusammenarbeiten, um das magische Sucherlebnis zu schaffen, das Ihnen die gewünschten Ergebnisse liefert.

Probieren Sie es selbst aus