2014-06-30 7 views
0

Y at-il un moyen de trouver le dernier document Lucene qui a été entré dans un index Lucene? Par exemple. Est-ce que Lucene garde une trace de l'histoire d'une façon ou d'une autre ou puis-je extraire l'ordre des fichiers (Document) qui ont été ajoutés à un index? Contexte: Je veux créer un index très volumineux avec des millions de documents qui prennent quelques jours à s'exécuter. Je voudrais avoir une implémentation d'index qui détecte le dernier fichier qui a été ajouté et continue à cette position lorsqu'il est redémarré.Lucene Index Historique/Dernier fichier indexé

Répondre

2

Pas vraiment, non. Le plus proche que vous obtiendriez serait d'obtenir le plus haut ID doc de l'index. Si vous commencez simplement à ajouter des documents à un index vide, et que rien ne sera supprimé ou mis à jour ou autre, cela pourrait même fonctionner. Cependant, il n'y a aucune garantie que les ID de document soient attribués dans l'ordre.

Si vous avez besoin de connaître l'ordre dans lequel les documents sont ajoutés. vous devriez ajouter un champ qui gère cela. Une date ou une heure stockée dans l'index, ou un identifiant séquentiel serait bien utile. Bien que cela puisse sembler un peu exagéré, il vous suffit de stocker un identifiant pour identifier le document source à partir duquel vous souhaitez revenir. Dans ce cas, stockez ce seul ID où jamais. Dans lucene, dans une base de données, dans un fichier txt, une chaîne sérialisée. Tout ce qui vous rend heureux.

+0

Cela a du sens, j'ai stocké le dernier identifiant qui a été indexé de ma collection et cela semble fonctionner. Je stocke chaque identifiant pour ne pas avoir à me demander lequel pourrait être double et la performance d'exécution est plutôt bonne ... – RalfB