Commenti sulla nostra sperimentazione di ricerca istantanea

Recentemente abbiamo intrapreso un esperimento di due mesi per prototipare una nuova esperienza di ricerca su Discourse.

Per favore, provalo su https://meta.discourse.org/instant-search

:speaking_head: Se desideri discutere della tua esperienza, sentiti libero di programmare una chat telefonica Apprezzo qualsiasi feedback :pray:

Funzionalità

  • Ricerca veloce

  • Possibilità di cercare argomenti, post, messaggi di chat e utenti

    • I risultati di post e argomenti includono i messaggi privati
    • I messaggi di chat includono canali privati e messaggi diretti
  • Filtri basati sull’interfaccia utente per cose come tag, categorie, utenti, caselle di posta, canali, ecc.

  • Modalità di ricerca per parole chiave, semantica, ibrida e HyDE

FAQ

La ricerca smette di funzionare dopo un po’ sulla pagina

In effetti lo fa; per favore, aggiorna.

Non supporta la nostra grammatica di ricerca, come @utente o #categoria

In effetti non lo fa, ma è qualcosa che può essere facilmente aggiunto se decidiamo di rilasciarlo.

Il fatto che la ricerca di argomenti e post abbia obiettivi distinti è una scelta strana

Posso capire perché, soprattutto se sei abituato a come funziona la ricerca di Discourse da un decennio. Se decidiamo di rilasciarlo, potremmo creare una modalità che faccia entrambe le cose contemporaneamente, o anche semplicemente eseguirle entrambe e mostrarle entrambe nell’interfaccia utente. Per i vincoli di questo esperimento, questo è stato il modo più semplice per affrontare entrambi i casi d’uso di:

  • So che questo argomento esiste e voglio solo trovarlo (Ricerca per argomento)
  • Voglio ricercare qualsiasi occorrenza di questa query (Ricerca per post)

La qualità dei risultati non è ancora ottimale

Abbiamo appena scalfito la superficie di ciò che è possibile qui; al momento, diamo priorità solo alle categorie e assegniamo pesi al titolo e al corpo. Ciò richiederebbe ulteriori modifiche per eguagliare il perfezionamento della ricerca esistente, ma offre anche la possibilità di andare oltre. Sfortunatamente, molto è controllato tramite l’API JS e la libreria che stiamo utilizzando ci ha un po’ limitato qui.

Semantica / HyDE / Ibrida sono lenti

Abbiamo aggiunto un debounce più ampio a questi per aggirare alcuni fastidi della libreria JS che stiamo utilizzando. Se decidiamo di rilasciarlo, questa libreria JS è la prima a essere eliminata. Per quanto riguarda la velocità complessiva di questi, dipendono da due richieste, la prima per gli embedding, che viene eseguita su hardware obsoleto su AWS, e questo non aiuta. Potremmo anche iniettare gli embedding nel proxy middleware per ridurre la latenza. Ancora una volta, vincoli di tempo dell’esperimento.

Dettagli tecnici

  • Questo esperimento utilizza Typesense, un clone open-source di Algolia. Viene eseguito su un’istanza EC2 nello stesso posto di tutto il resto dell’hosting di Meta.

  • Il frontend non richiede direttamente da Typesense; invece, tutte le chiamate vengono inoltrate tramite l’app Discourse, utilizzando un middleware Rack.

  • La barra di ricerca / i risultati / i filtri utilizzano InstantSearchJS racchiuso in EmberJS. Sfortunatamente, questa libreria ha causato molti problemi e non la utilizzeremo se rilasceremo questo.

  • Il server utilizza 7,35 GB di RAM per indicizzare tutto Meta. Tieni presente che la maggior parte di ciò è dovuta agli embedding; sarebbe meno di 2 GB senza embedding.

18 Mi Piace

Sembra fantastico. Puoi metterci un link da qualche parte, tipo nella barra laterale?

6 Mi Piace

Dato che viene menzionato AWS, mi chiedo se alcune delle funzionalità di AWS Q potrebbero essere un percorso rapido e sostenibile per migliorare la ricerca?

2 Mi Piace

Sembra fantastico! In termini di velocità, è sorprendente.

Sembra che non corrisponda parzialmente alle parole nel titolo.

Ad esempio, sto cercando l’argomento: Objects type for theme setting.
Se non fornisco una s a object, non trova l’argomento.

5 Mi Piace

L’opzione keyword è letterale, per corrispondenze più flessibili puoi provare semantic (che cerca significati simili) o modalità ibrida (che fa un mix di entrambi):

Penso che se dovessimo continuare con questo plugin, avrebbe senso impostare di default la modalità ibrida perché le persone non hanno molta familiarità con il cambio di tipi di ricerca in questo modo.

7 Mi Piace

Ci ho provato rapidamente e lo trovo promettente. Nei giorni scorsi, ho cercato l’argomento della barra di amministrazione sperimentale e l’argomento del ripristino dei backup dalla riga di comando. Nel primo caso, ci è voluto un po’ per trovarlo nei risultati di ricerca, nel secondo caso, ho finito per cercare nei miei segnalibri. Ma la nuova ricerca li recupera entrambi ed è molto più veloce della vecchia. Quindi decisamente un miglioramento per me :+1:

4 Mi Piace

Interessante, non vedo l’ora di esplorarlo ulteriormente! Finora sembra promettente!

Potremmo vedere qualcosa del genere sostituire completamente la funzione di ricerca completa? Inoltre, questo strumento servirà come aggiunta allo strumento di ricerca corrente nella barra degli strumenti in alto?

3 Mi Piace

È fantastico. Avrà un’opzione di completamento automatico per dispositivi mobili come Elasticsearch?

3 Mi Piace

Grazie, ma colpa mia.
In realtà, non ho nemmeno visto un elenco a discesa, anche se il primo post parlava delle modalità. :derp:

Ora ha senso :+1:.

Sono d’accordo. Non riesco a ricordare un sito web in cui ho dovuto cambiare la modalità di ricerca.
Come utente, mi aspetto una modalità predefinita che funzioni bene nella maggior parte delle situazioni.


I filtri dinamici avanzati sono davvero fantastici! Sarà molto utile per restringere rapidamente le ricerche.

Nel complesso, ottimo lavoro, team :clap:; sperimenterò di più.

5 Mi Piace

Questo esperimento è stato realizzato per ricercare la fattibilità di ricostruire la nostra ricerca da zero e quali sono i compromessi di questo nuovo approccio. Sebbene sia troppo presto per dirlo, se la nuova esperienza di ricerca sarà sufficientemente ben accolta, potrà essere presa in considerazione per l’integrazione in molte funzionalità di ricerca di Discourse, sia essa la ricerca a pagina intera, la ricerca inline nell’intestazione, la ricerca di argomenti simili per argomenti correlati, le menzioni degli utenti, il completamento automatico degli hashtag, ecc.

Ciò è facilmente realizzabile con questa tecnologia, sia su dispositivi mobili che desktop, molto simile all’interfaccia utente di ricerca di Google.

Le modalità esistono solo per l’esperimento in modo che le persone possano confrontare e testare facilmente; se questo venisse spedito, le modalità diventerebbero molto probabilmente un’opzione di amministrazione, invece di qualcosa rivolto all’utente.

10 Mi Piace

Mi piace che sia veloce!

Mi piace anche l’esperimento /filter e il modo in cui presenta tutte le mie opzioni di filtro. Sembra quindi che ci siano un paio di direzioni esplorate per quanto riguarda la ricerca di contenuti. Si uniranno?

Ciò che semplificherebbe davvero le cose per me se ci fosse un linguaggio comune alla fine, in modo che come utente avrei una comprensione diretta di:

  • Cos’è una Ricerca? Cos’è un Filtro?
  • come riconosco ciascuno sull’interfaccia, dove dovrei aspettarmi di trovare ciascuno?
  • quando mi viene presentato un set di filtri semplice/comune? Come accedo/espando il set completo?
3 Mi Piace

Se spedito, il backend per la ricerca istantanea alimenterebbe /filter. È fondamentalmente la stessa cosa che stiamo già facendo nella ricerca degli argomenti in questo esperimento.

3 Mi Piace

Se non ti dispiace che te lo chieda, per contesto e per sapere esattamente cosa cercare quando testerò:

  • Cosa c’è che non va nella ricerca attuale che vuoi cambiare o migliorare?
  • Cosa stiamo valutando qui oltre alla velocità?
  • Se decidessi di ricostruire la ricerca da zero, c’è la possibilità di far cercare a Discourse altri contenuti? Ad esempio, documentazione non ospitata all’interno di Discourse?
3 Mi Piace

Ecco alcuni problemi comuni nel corso degli anni:

  1. Ci sono molte lamentele sul fatto che la nostra ricerca non trovi ciò che le persone cercano, specialmente per il caso d’uso di
  1. La ricerca di Discourse non gestisce affatto gli errori di battitura.

  2. La scarsa esperienza degli sviluppatori sulla ricerca esistente la rende un cittadino di seconda classe, come il fatto che la chat non sia ancora ricercabile.

  3. Scarsa esperienza utente sulla ricerca per la ricerca di messaggi privati.

4 Mi Piace

:bangbang: Ho anche un lungo elenco, ma volevo assicurarmi di arrivare con domande e comprensione prima di insistere :joy:

Sono davvero felice di vedere la considerazione per il miglioramento. FWIW, sebbene abbia ancora del lavoro da fare, ci viene costantemente detto quanto i nostri utenti amino la nostra ricerca (ovvero la ricerca di Discourse) quando la confrontano con altre esperienze di ricerca che hanno, anche con le sue stranezze.

Come funzione di spinta, il mio team sta utilizzando esclusivamente (almeno all’interno del nostro team) Discourse per comunicare. Questa è stata la prima richiesta di un membro del mio team oggi:

Ecco un paio di cose che mi vengono in mente inizialmente:

  • Migliore ricerca dei messaggi privati
  • Ricerca della chat
  • La possibilità di cercare (o estendere la ricerca) fuori dal sito sarebbe fantastica. Molte community non si fermano alle porte di Discourse.
  • Come hai menzionato, le ricerche di stringhe esatte a volte restituiscono comportamenti strani
5 Mi Piace

Questa è una cosa che abbiamo considerato attentamente quando abbiamo sperimentato con una soluzione pronta all’uso come Typesense. Renderebbe molto più facile estendere la nostra ricerca a "documenti" esterni, consentendo ai clienti di inserire documenti nel nostro database o consentendo al front-end di consumare da altre istanze che seguono alcune linee guida per essere compatibili.

È un bene che abbiamo ottenuto questi due subito con l’esperimento! Grazie per il feedback.

3 Mi Piace

Per la cronaca, abbiamo temporaneamente disattivato questo esperimento. Dovrebbe tornare presto. :crossed_fingers: :slight_smile:

7 Mi Piace

È tornato :occhi:

4 Mi Piace

Oltre alle tue risposte qui, sto cercando di condurre alcune brevi interviste di ricerca utente per capire meglio come utilizzi la nuova ricerca istantanea

  • Ottieni il tuo feedback qualitativo generale: cosa ti è piaciuto/non ti è piaciuto/cambieresti/vorresti vedere in futuro
  • Come l’esperienza si confronta con la nostra attuale ricerca
  • Vederti all’opera mentre utilizzi la nuova ricerca

I miei DM sono aperti se le persone sono disposte a chattare al telefono! Apprezzo qualsiasi feedback :pray:

6 Mi Piace

Un’altra piccola pausa :palm_tree: Torno presto. :slight_smile:

2 Mi Piace