Estou escrevendo uma aplicação com o Lucene e queria atualizar o índice somente se o arquivo foi modificado depois de ter sido incluido no índice … preciso mesmo fazer esse controle na mão?
Ou seja … alguem ai sabe onde tem um index writer desse bonitinho pronto pro Samuca usar?
Só uma idéia: Talvez a solução esteja na integração de um script ant que rode de tempos em tempos e reindexe caso encontre algum arquivo novo. O ant deve usar a task index descrita em: Java Development with Ant: Lucene
Os campos da task index são:
path (tipo Keyword) = absolute path to a file
modified (tipo Keyword as Date) =last modified date of a file
title (tipo Text) = <title> in html files; filename for .txt files
Contents (tipo Text) = Complte contents of .txt files; parsed <body> of html files
rawcontents (tipo UnIndexed) = raw contents of the file
Se você precisar de atualização on-the-fly tem 2 soluções possiveis.
Crie um script para a plataforma em questão e integre com o serviço de monitoração de arquivos dela. No linux você usa o inotify, procura na net que você acha scripts prontos para fazer isso.
Pega algum pacote de monitoração de arquivos para java e faz em java o trem. Uma sugestão é usar os fontes do plugins org.eclipse.core.resources. do eclipse. Com um pouco de esforço você extrai o código de monitoração dele do resto.