J'essaie d'utiliser la bibliothèque AzureDirectory pour stocker un index Lucene.NET sur un compte Azure Cloud Storage.Bibliothèque AzureDirectory pour Lucene.NET: problèmes de performances lors de l'indexation
J'utilise les versions suivantes:
- Microsoft.Windows.Azure.Storage 4.3.0.0
- Lucene.Net 3.0.3.0
- Lucene.Net.Store.Azure 3.0.5553.21100
et appeler la méthode suivante:
public void UpdateDocument(Term keyTerm, Document document, string indexName)
{
using (var analyser = new StandardAnalyzer(LuceneVersion))
{
using (var directory = new AzureDirectory(cloudStorage.GetStorageAccount(), indexName, new RAMDirectory()))
{
using (var indexWriter = new IndexWriter(directory, analyser, true, IndexWriter.MaxFieldLength.UNLIMITED))
{
indexWriter.UpdateDocument(keyTerm, document);
}
}
}
}
Lorsque j'appelle la méthode même aussi peu que 10 fois (à partir d'un test unitaire), le temps total est d'environ 30 secondes.
J'ai essayé plusieurs changements avec l'indexeur pour voir si des gains de performance peuvent être réalisés mais jusqu'à présent rien. J'ai essayé de changer le code pour réutiliser l'indexeur et les classes de répertoire mais je me retrouve avec des verrous de fichiers. Je voulais aussi garder le code d'index éloigné de l'appelant pour garder Lucene isolée. Si je commente indexWriter.UpdateDocument(keyTerm, document);
alors son responsive qui me dit c'est où la lenteur est.
Je voudrais savoir si je fais quelque chose de mal ou de manquer quelque chose ici?