Utilizzando Lucene.Net, quale categoria di indicizzazione dovrei usare qui?
-
10-07-2019 - |
Domanda
Sto cercando di creare una ricerca per il nostro database di supporto interno - ogni ticket di supporto è composto da molte e-mail e sto cercando di capire il modo migliore per indicizzarlo:
- Devo creare un documento per ciascuna delle e-mail singolarmente o
- Devo concatenare tutte le e-mail per un biglietto e creare un documento per ciascun biglietto.
Durante la ricerca, voglio restituire un elenco di biglietti (anziché un elenco di e-mail raggruppate per biglietto o simili)
Qual è la migliore?
Soluzione
Se si desidera l'elenco dei ticket nei risultati, concatenare le e-mail. Altrimenti è necessario mantenere relazioni tra e-mail e biglietti. Puoi farlo solo con campi testuali all'interno dei documenti. E questo forse è lento. Ma una simile relazione è possibile
Se si utilizza la ricerca insieme alle e-mail di indicizzazione del database delle relazioni, una per una andrà bene. Recuperi e-mail, quindi leggi il campo spuntato dal documento lucene e quindi leggi Ticket con questo ID dal database.
Ovviamente indicizzare le e-mail separatamente è una soluzione più flessibile. Se in futuro dovrai recuperare le informazioni via e-mail, puoi farlo. Nella soluzione all-emails-in-one dovrai reindicizzare l'intero database.
Altri suggerimenti
Se vuoi cercare a livello di ticket, ha più senso combinare tutte le e-mail del ticket in 1 documento.
Non credo che ci sia un "migliore" definitivo rispondi qui. Personalmente, probabilmente includerei il testo delle e-mail nell'indice per il ticket di supporto, poiché ciò consentirebbe a un singolo indice di trovare i ticket di supporto in base sia al testo delle e-mail sia ad altre proprietà del ticket di supporto. Questo è il genere di cose che è abbastanza soggettivo, tuttavia, quindi potresti provare a prototipare strategie diverse e fare alcuni test utente.