Stiamo costruendo un nuovo prodotto nello spazio immobiliare e gli utenti finali di questo prodotto non sono così esperti di tecnologia. Per avere una migliore esperienza utente con il nostro prodotto, vogliamo che i nostri utenti trovino le cose rilevanti in modo rapido e semplice. A parte una semplice interfaccia utente, una barra di ricerca universale sembra aggiungere valore.
La barra di ricerca con completamento automatico consentirà agli utenti di trovare informazioni quali: la cronologia di fatturazione (pagamenti precedenti, fatture ..), il contenuto della guida, il contenuto di supporto dai ticket dell'helpdesk, i dati dalla cronologia della chat e così via.
Stiamo andando con l'architettura dei microservizi per i nostri servizi come la gestione degli utenti, il sistema dei ticket di aiuto, la chat, il CMS per il contenuto della guida e altro ancora. La domanda è: come possiamo creare questo servizio di ricerca centrale che può indicizzare e archiviare tutti i contenuti utente di tutti questi servizi che l'utente sarà in grado di cercare.
Ogni servizio dovrebbe scaricare i dati in elasticsearch per essere indicizzati e resi disponibili per la ricerca, quindi un servizio di ricerca piuttosto che una query? Di 'quando un ticket di supporto è aperto, o una conversazione chat è chiusa il microservizio rilevante copierà questi dati in un servizio come ricerca elastica? Sarebbe meglio per i microservizi spingere tali dati su una coda che poi viene consumata in elasticsearch?
Sono aperto a qualsiasi idea e idea su come la ricerca è architettata e sulle migliori pratiche in questo. Felice di fornire maggiori informazioni sul nostro servizio se aiuta a ottenere una risposta migliore.
AGGIORNAMENTO:
- Esiste un DB per microservizio
- La ricerca non deve essere in tempo reale
- Non sono troppo preoccupato per il carico e andremo con la ricerca in hosting - AWS cloudsearch o elasticsearch