Sie könnten dies tun, indem Sie einen zweiten Index in Ihrem ES-Cluster erstellen. Wenn ein Benutzer eine Suche über Ihre Anwendung durchführt, führen Sie zwei Schritte aus.
- Übermitteln Sie die Suche als Abfrage an Elasticsearch für ein normales Suchverhalten.
- Senden Sie eine Indexanforderung mit den vom Benutzer bereitgestellten Suchbegriffen an den Cluster.
Mit einem zweiten Index aller eingegebenen Suchbegriffe können Sie eine Menge netter Dinge tun. Für Ihren Fall können Sie wie in SQL ein Feld „Anzahl“ haben, das Sie erhöhen, wenn mehr Personen nach diesem Begriff suchen. Ein weiterer großartiger Anwendungsfall sind empfohlene Begriffe im Google-Stil. Ihre Benutzeroberfläche kann bei jedem Tastendruck eine Suchanfrage mit dem eingegebenen Text senden und ein Dropdown-Menü mit Treffern aus den zuvor gesuchten Begriffen füllen. Sie können dies sogar personalisieren, indem Sie ein Benutzerfeld hinzufügen und Ergebnisse herausfiltern, die nicht von diesem bestimmten Benutzer stammen.
Beachten Sie, dass ElasticSearch sowohl als primärer als auch als sekundärer Datenspeicher verwendet werden kann. Ich schlage jedoch immer vor, dass Sie nur Daten als Primärdaten aufbewahren, die Sie verlieren möchten (wie den Suchverlauf). Bewahren Sie Ihre systemkritischen Daten in einem traditionelleren Datenspeicher wie SQL auf, damit sie einfach gesichert und wiederhergestellt werden können, falls jemals etwas schief geht!