Pergunta

Eu estou usando Lucene.Net para criar um site para pesquisar livros, artigos, etc, armazenados como PDFs. Eu preciso ser capaz de filtrar meus resultados de pesquisa com base no nome do autor, por exemplo. isso pode ser feito com apenas Lucene? Ou eu preciso de um banco de dados para armazenar os campos de filtro para cada documento?

Além disso, qual é a melhor maneira para indexar os meus documentos? Eu vou ter cerca de 50 documentos para começar e periodicamente eu vou ter que adicionar um monte de documentos para o índice - pode ser através de um formulário web. Devo usar um banco de dados para armazenar os caminhos de documentos?

Graças.

Foi útil?

Solução

Aqui está uma lista do que você precisa fazer IMO:

  1. Extrair texto cru de PDF - consulte este questão que recomenda iTextSharp para esta finalidade.
  2. Para cada documento PDF, criar um documento Lucene.net que tem vários campos: autor, título, texto e tudo o que você deseja pesquisar. Recomenda-se também ter um campo id único por documento. Eu sugiro que você também armazenar um campo com o caminho para o documento PDF original.
  3. Depois de indexar todos os documentos, você terá um índice de Lucene você pode pesquisar por campos.
  4. Você pode adicionar novos documentos repetindo o passo 2. É mais fácil fazer isso off-line -. Atualizações incrementais são difíceis

Outras dicas

Lucene tem um casal de diferentes analisadores que pode esfregar o ruído e fazer "decorrentes" que é útil quando você quer fazer a pesquisa de texto completo, mas você ainda está indo para necessidade de armazenar o próprio PDF em algum lugar. Lucene.Net está feliz para construir um índice no sistema de arquivos, e você pode adicionar um campo para o documento que constrói chamado algo como "PATH" com o caminho para o documento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top