Question

J'utilise Lucene.Net pour créer un site Web permettant de rechercher des livres, des articles, etc. stockés au format PDF. Je dois pouvoir filtrer mes résultats de recherche en fonction du nom de l'auteur, par exemple. Cela peut-il être fait avec juste Lucene? Ou ai-je besoin d'une base de données pour stocker les champs de filtre de chaque document?

Aussi, quel est le meilleur moyen d’indexer mes documents? J'aurai environ 50 documents pour commencer et, périodiquement, je devrai ajouter une série de documents à l'index - éventuellement via un formulaire Web. Devrais-je utiliser une base de données pour stocker les chemins de document?

Merci.

Était-ce utile?

La solution

Voici une liste de ce que vous devez faire IMO:

  1. Extraire le texte brut du fichier PDF - consultez la cette question qui recommande iTextSharp à cette fin.
  2. Pour chaque document PDF, créez un document Lucene.net comportant plusieurs champs: auteur, titre, texte du document et tout ce que vous souhaitez rechercher. Il est recommandé d’avoir également un champ identifiant unique par document. Je vous suggère également de stocker un champ avec le chemin d'accès au document PDF d'origine.
  3. Après avoir indexé tous les documents, vous disposez d’un index Lucene que vous pouvez rechercher par champs.
  4. Vous pouvez ajouter de nouveaux documents en répétant l'étape 2. Il est plus facile de le faire hors connexion - les mises à jour incrémentielles sont difficiles.

Autres conseils

Lucene a plusieurs analyseurs différents qui peuvent éliminer le bruit et effectuer un "traitement par arrêt". ce qui est utile lorsque vous souhaitez effectuer une recherche en texte intégral, mais que vous aurez toujours besoin de stocker le fichier PDF lui-même quelque part. Lucene.Net est heureux de créer un index sur le système de fichiers et vous pouvez ajouter un champ au document qu'il crée appelé quelque chose comme "PATH". avec le chemin d'accès au document.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top