Pregunta

Estoy usando Lucene.Net para crear un sitio web para buscar libros, artículos, etc., almacenados como archivos PDF. Necesito poder filtrar mis resultados de búsqueda según el nombre del autor, por ejemplo. ¿Se puede hacer esto solo con Lucene? ¿O necesito una base de datos para almacenar los campos de filtro para cada documento?

Además, ¿cuál es la mejor manera de indexar mis documentos? Para empezar, tendré unos 50 documentos y periódicamente tendré que agregar un montón de documentos al índice, puede ser a través de un formulario web. ¿Debo usar una base de datos para almacenar las rutas del documento?

Gracias.

¿Fue útil?

Solución

Aquí hay una lista de lo que necesita hacer IMO:

  1. Extraiga el texto sin formato del PDF; consulte esta pregunta que recomienda iTextSharp para este propósito.
  2. Para cada documento PDF, cree un documento de Lucene.net que tenga varios campos: autor, título, texto del documento y lo que quiera buscar. Se recomienda tener también un campo de identificación único por documento. Le sugiero que también almacene un campo con la ruta al documento PDF original.
  3. Después de indexar todos los documentos, tendrá un índice de Lucene que puede buscar por campos.
  4. Puede agregar nuevos documentos repitiendo el paso 2. Es más fácil hacerlo sin conexión; las actualizaciones incrementales son difíciles.

Otros consejos

Lucene tiene un par de analizadores diferentes que pueden eliminar el ruido y hacer " stemming " lo cual es útil cuando se desea realizar una búsqueda de texto completo, pero aún tendrá que almacenar el PDF en algún lugar. Lucene.Net se complace en crear un índice en el sistema de archivos, y puede agregar un campo al Documento que crea llamado algo así como "RUTA" con la ruta al documento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top