Mysql
 sql >> Database >  >> RDS >> Mysql

Il modo migliore per salvare le query di ricerca degli utenti in ElasticSearch?

Puoi farlo creando un secondo indice nel tuo cluster ES. Quando un utente invia una ricerca tramite la tua applicazione, esegui due passaggi.

  1. Invia la ricerca come query a Elasticsearch per il normale comportamento di ricerca.
  2. Invia una richiesta di indice al cluster con i termini di ricerca forniti dall'utente.

Con un secondo indice di tutti i termini di ricerca che sono stati inviati puoi fare una serie di cose belle. Per il tuo caso, puoi avere un campo "count" proprio come in SQL che incrementi man mano che più persone cercano quel termine. Un altro ottimo caso d'uso sono i termini consigliati in stile Google. L'interfaccia utente può inviare una richiesta di ricerca con il testo inserito a ogni pressione di un tasto e popolare un elenco a discesa con i risultati dei termini ricercati in precedenza. Puoi anche personalizzarlo aggiungendo un campo utente e filtrando i risultati non da quel particolare utente.

La cosa da tenere a mente è che ElasticSearch può essere utilizzato sia come archivio dati primario che secondario. Suggerisco sempre di conservare solo i dati che sei disposto a perdere (come la cronologia delle ricerche) come dati primari. Conserva i dati critici del tuo sistema in un archivio dati più tradizionale come SQL, in questo modo è facile eseguire il backup e il ripristino se qualcosa va storto!