Domanda

Sto usando Lucene.Net per creare un sito Web per cercare libri, articoli, ecc., archiviati come PDF. Devo essere in grado di filtrare i miei risultati di ricerca in base al nome dell'autore, ad esempio. Questo può essere fatto solo con Lucene? O ho bisogno di un DB per memorizzare i campi filtro per ciascun documento?

Inoltre, qual è il modo migliore per indicizzare i miei documenti? Avrò circa 50 documenti per cominciare e periodicamente dovrò aggiungere un sacco di documenti all'indice - potrebbe essere attraverso un modulo web. Devo usare un DB per memorizzare i percorsi dei documenti?

Grazie.

È stato utile?

Soluzione

Ecco un elenco di ciò che è necessario fare IMO:

  1. Estrai testo non elaborato da PDF: consulta questa domanda che consiglia iTextSharp a questo scopo.
  2. Per ogni documento PDF, crea un documento Lucene.net che abbia diversi campi: autore, titolo, testo del documento e qualunque cosa tu voglia cercare. Si consiglia di disporre anche di un campo ID univoco per documento. Ti suggerisco di memorizzare anche un campo con il percorso del documento PDF originale.
  3. Dopo aver indicizzato tutti i documenti, avrai un indice Lucene che puoi cercare per campi.
  4. Puoi aggiungere nuovi documenti ripetendo il passaggio 2. È più semplice farlo offline: gli aggiornamenti incrementali sono difficili.

Altri suggerimenti

Lucene ha un paio di analizzatori diversi che possono eliminare il rumore e fare "derivare". che è utile quando si desidera effettuare la ricerca full-text, ma sarà comunque necessario archiviare il PDF stesso da qualche parte. Lucene.Net è felice di creare un indice sul file system e potresti aggiungere un campo al documento che crea chiamato qualcosa come "PATH" con il percorso del documento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top