5
當代碼在下面執行時,我假設每次解析查詢時都從文件系統讀取停用詞文件。我可以重複使用分析器的同一個實例而不是創建一個新的分析器嗎?它是線程安全的嗎? (多谷歌搜索後,我找不到這方面的資料)Lucene.NET,StandardAnalyzer,停用詞和線程安全
var stopwordsFile = new FileInfo("C:\MyStopWordsFile.txt");
var analyzer = new StandardAnalyzer(stopwordsFile);
var queryParser = new QueryParser("", analyzer);
var query = queryParser.Parse(stringToParse);
是的,我注意到了。對我而言,Lucene似乎很奇怪,然後將爲每個查詢重新加載和解析來自文件系統的停用詞文件。由於性能方面的原因,但我想也可能存在文件系統鎖定問題以及2個線程同時讀取文件的情況。 Iv還看到了我認爲可以重複使用分析儀的樣本,儘管文檔中的說明似乎與此相矛盾。 – 2010-02-23 10:16:20
@Alex,如果文件僅用於讀取而不是唯一鎖定,則不會出現鎖定或其他訪問問題。 – zihotki 2010-02-23 10:40:47
是的,沒錯,假設Lucene是這樣做的。由於說明該類不是線程安全的,因此可能會認爲該假設可能不正確。 – 2010-02-23 11:07:35