U kunt dit doen door een tweede index in uw ES-cluster te maken. Wanneer een gebruiker een zoekopdracht uitvoert via uw applicatie, voert u twee stappen uit.
- Verzend de zoekopdracht als een zoekopdracht naar Elasticsearch voor normaal zoekgedrag.
- Dien een indexverzoek in bij het cluster met de zoektermen die de gebruiker heeft opgegeven.
Met een tweede index van alle ingevoerde zoektermen kun je een aantal leuke dingen doen. Voor uw geval kunt u een 'tel'-veld hebben, net als in SQL, dat u verhoogt naarmate meer mensen naar die term zoeken. Een andere geweldige use-case zijn de aanbevolen termen in Google-stijl. Uw gebruikersinterface kan een zoekopdracht indienen met de ingevoerde tekst bij elke toetsaanslag en een vervolgkeuzelijst vullen met treffers van de eerder gezochte termen. U kunt dit zelfs personaliseren door een gebruikersveld toe te voegen en resultaten uit te filteren die niet van die specifieke gebruiker zijn.
Het ding om in gedachten te houden is dat ElasticSearch kan worden gebruikt als zowel een primaire als secundaire gegevensopslag. Ik stel echter altijd voor dat u alleen gegevens die u bereid bent te verliezen (zoals zoekgeschiedenis) als primaire gegevens te bewaren. Bewaar uw systeemkritieke gegevens in een meer traditionele gegevensopslag zoals SQL, zodat u gemakkelijk een back-up kunt maken en deze kunt herstellen als er ooit iets misgaat!