2010-02-24 6 views
0

J'ai une application Asp.Net MVC et je cherche à mettre en place un moteur de recherche qui va chercher des individus. Je voudrais utiliser Nhibernate Search & Lucene.Net car cela gardera l'index synchronisé lorsqu'un individu est inséré ou mis à jour, ce qui entraîne des changements visibles lorsqu'un utilisateur lance une recherche. Le problème que j'ai est de savoir si plusieurs utilisateurs mettent à jour l'index en même temps, comment Nhibernate Search gère-t-il cela? Lucene est-il responsable du verrouillage?Asp.MVC et nHibernate et Lucene question

Toute aide sera grandement appréciée.

Cordialement

Spam

Répondre

0

Lucene.NET se chargera de verrouillage pour vous, quand même L'exécution de plusieurs applications peut comporter des verrous de collision puisque toutes les instances stockent le fichier de verrouillage dans le dossier temporaire.

Cela a été corrigé dans Lucene 2.3 ou quelque chose, où ils ont commencé à stocker le fichier de verrouillage dans le basedir (où tous les fichiers d'index réside), par défaut. Bien que, je pense qu'une index-écriture pendant une recherche ou une écriture d'un autre thread/processus jettera une exception, par conséquent il serait sage de gérer cela en conséquence (par exemple, mettre en file d'attente une mise à jour pour cette entité).