sql >> Database >  >> RDS >> Mysql

De beste manier om zoekopdrachten van gebruikers in ElasticSearch op te slaan?

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.

  1. Verzend de zoekopdracht als een zoekopdracht naar Elasticsearch voor normaal zoekgedrag.
  2. 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!




  1. Hoe rijwaarden van een datagridview te krijgen en deze door te geven aan een ander formulier met een knop in dezelfde rij

  2. CakePHP converteert MySQL integers naar strings... functie rand() verknoeien

  3. kaartpoorten instellen op 80 en 3306

  4. Is FCM (Firebase Cloud Messaging) Token voor één apparaat of voor één account?