我有一個將索引寫入文件系統的WCF服務。我擔心如果多個客戶端同時嘗試執行此操作,可能會遇到線程問題。我看到FSDirectory.Open()有一個重載,允許我傳遞一個「LockFactory」。如何爲Lucene.net創建LockFactory?
我一直沒有找到任何有關如何爲Lucene.net創建這些LockFactories的文檔。有人可以告訴我在哪裏可以找到關於LockFactory的一些文檔或我應該實現哪些接口?
DirectoryInfo indexDirectory = new DirectoryInfo(ConfigurationManager.AppSettings["indexpath"]);
Directory luceneDirectory = FSDirectory.Open(indexDirectory);
try
{
IndexWriter indexWriter = new IndexWriter(luceneDirectory, new StandardAnalyzer());
Document document = new Document();
foreach (KeyValuePair<string,string> keyValuePair in _metaDataDictionary)
{
document.Add(new Field(keyValuePair.Key, keyValuePair.Value, Field.Store.YES, Field.Index.ANALYZED));
indexWriter.AddDocument(document);
}
indexWriter.Optimize();
indexWriter.Flush();
indexWriter.Close();
}
catch(IOException e)
{
throw new IOException("Could not read Lucene index file.");
}