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

Bedste måde at gemme brugeres søgeforespørgsler i ElasticSearch?

Du kan gøre dette ved at oprette et andet indeks i din ES-klynge. Når en bruger sender en søgning gennem din ansøgning, udfører du to trin.

  1. Send søgningen som en forespørgsel til Elasticsearch for normal søgeadfærd.
  2. Send en indeksanmodning til klyngen med de søgetermer, som brugeren har angivet.

Med et andet indeks over alle søgetermer, der er blevet indsendt, kan du gøre en række smarte ting. Til dit tilfælde kan du have et 'count'-felt ligesom i SQL, som du øger, efterhånden som flere mennesker søger efter det pågældende udtryk. Et andet godt tilfælde er en google-stil anbefalede termer. Din brugergrænseflade kan indsende en søgeanmodning med den indtastede tekst ved hvert tastetryk og udfylde en rullemenu med hits fra de tidligere søgte termer. Du kan endda tilpasse dette ved at tilføje et brugerfelt og filtrere resultater fra, som ikke er fra den pågældende bruger.

Det man skal huske på er, at ElasticSearch kan bruges som både primært og sekundært datalager. Jeg foreslår altid, at du kun beholder data, du er villig til at miste (som søgehistorik), som primære data. Opbevar dine systemkritiske data i et mere traditionelt datalager som SQL, på den måde er det nemt at sikkerhedskopiere og gendanne, hvis noget nogensinde går galt!




  1. Hvordan vælger man 1d array fra 2d array?

  2. PHP - Gør min forespørgsels arrays nøgle til ID

  3. Hvornår skal man bruge kommaseparerede værdier i en DB-kolonne?

  4. hvordan ryddes/skylles mysql innodb buffer pool?