Dietro le quinte

Più si guarda da vicino, più diventa difficile

Eric Funk
7.2.2019
Traduzione: tradotto automaticamente

Tutti sanno che una funzione di ricerca funzionante permette di orientarsi in Internet. Anche su digitec e Galaxus esiste una funzione di ricerca che viene utilizzata intensamente.

Con diverse centinaia di migliaia di visite al giorno, la funzione di ricerca è una delle funzioni più utilizzate del nostro sito web. Noi del Team Endeavour abbiamo sviluppato la funzione di ricerca da circa un anno. Il nostro obiettivo è quello di offrirti un accesso comodo ai nostri contenuti.

Ovviamente, la cosa più importante è che la funzione di ricerca ti porti rapidamente al prodotto giusto tra gli innumerevoli disponibili. D'altra parte, vogliamo anche mostrarti la conoscenza del prodotto sotto forma di articoli di riviste e community, in modo che tu possa informarti prima di acquistare.

Ma come si fa ad accedere ai nostri contenuti?

Ma come si costruisce una buona ricerca? Quali sono le insidie? E quali problemi dobbiamo ancora risolvere? Per chi è interessato alla tecnologia, ho scritto questo articolo che ti offre una panoramica della nostra ingegneria.

I dati solidi sono la base

Per poter effettuare una ricerca, è necessario creare un buon database. Senza di esso, non si ottengono risultati validi. Questo è più facile a dirsi che a farsi, perché la nostra ricerca combina molto di più dei soli dati dei prodotti. Milioni di contenuti si uniscono rapidamente. All'utente non interessa, vuole solo vedere i risultati più adatti in un'unica visualizzazione. E in modo rapido. Per rendere tutto questo possibile, utilizziamo la tecnologia di ricerca open source Elasticsearch.

Negli ultimi mesi abbiamo lavorato molto su una nuova architettura in cui quasi tutti i contenuti ricercabili vengono inviati al nostro modulo di ricerca nel Cloud di Azure e archiviati in Elasticsearch. L'insieme di queste due tecnologie ci aiuta, tra le altre cose, ad aggiornare in tempo reale le variazioni di prezzo sul sito web e a scalare la nostra soluzione software.

La scalabilità è sempre più importante.

La scalabilità sta diventando sempre più importante, dato che la quantità di informazioni sta esplodendo. Da quando il nostro team ha iniziato a lavorare sulla ricerca, la quantità di dati è già triplicata e questo processo si accelererà con l'espansione all'estero e l'ampliamento dell'assortimento.

La velocità è tutto.

La velocità è tutto

Quanto ai dati puliti e alla nostra base tecnologica. La prossima e più grande sfida per una buona ricerca è la query di ricerca stessa. Non solo deve mostrare i risultati pertinenti, ma deve anche fornire i risultati in modo rapido, molto rapido. Stiamo parlando di una media di 150 millisecondi.

Ogni sviluppatore di software sa che le prestazioni non aumentano necessariamente con il numero di funzioni. La complessità aumenta con le regole che vengono applicate alla query. Esempio: i prodotti più popolari dovrebbero essere visualizzati in modo più evidente rispetto a quelli acquistati di rado. Il nome dovrebbe avere un peso maggiore rispetto a una caratteristica secondaria del prodotto. E questi sono solo due casi ovvi.

All'aumentare del numero di regole che vengono applicate alla query.

Con l'aumentare del numero di regole di ricerca, aumenta anche la possibilità di errori. È necessario prestare attenzione quando si apportano modifiche per evitare che appaiano improvvisamente risultati inaspettati. A proposito di suscettibilità agli errori: anche noi umani non ne siamo immuni. Durante la digitazione si insinuano continuamente piccoli errori, che non dovrebbero portare a un peggioramento dei risultati di ricerca.

Abbiamo ancora molto da fare

A volte lavoriamo su cose che non si vedono nemmeno. Al massimo puoi sentirle. Mi riferisco alla ristrutturazione della pagina dei risultati, che dopo la ristrutturazione è ancora identica. Sotto il cofano, ora funziona con il framework front-end React. Il live shopping nel negozio online utilizza già React, il checkout e altre pagine seguiranno. Speriamo che la conversione migliori il flusso degli utenti e le prestazioni del browser, soprattutto sui dispositivi mobili. E, naturalmente, una base di codice più snella a lungo termine.

Al momento, noi del Team Endeavour stiamo ancora cercando di padroneggiare la complessità della ricerca. Siamo consapevoli di avere ancora un grande potenziale di miglioramento nella ricerca. Un approccio è l'apprendimento automatico (ML). I principali motori di ricerca come Google utilizzano già l'apprendimento automatico per implementare suggerimenti, correzioni e tendenze di ricerca. Quest'anno vogliamo acquisire le conoscenze di base su questo nuovo argomento e implementare un primo prototipo.

Ora tu!

La ricerca è un'applicazione che sembra semplice, ma in realtà è piuttosto complessa. Più ti addentri nell'argomento, più diventa complessa e impegnativa. Sei interessato a questo argomento? Oppure puoi aiutarci con la tua conoscenza di Elastic? Si dà il caso che siamo attualmente alla ricerca di rinforzi. Se non vuoi candidarti subito, sono ben accetti anche apprezzamenti e critiche.

A 59 persone piace questo articolo


Potrebbero interessarti anche questi articoli

  • Dietro le quinte

    Dai dati ai fatti: Product Development in fase di transizione – parte 1

    di Ronny Wullschleger

  • Dietro le quinte

    Più IA e ancora più trasparenza dei prezzi – idee e risultati dell'«Hackfest»

    di Martin Jungfer

  • Dietro le quinte

    Lego e iPhone: le ricerche più frequenti della clientela

    di Manuel Wenk

29 commenti

Avatar
later