2011-04-08 22 views

回答

0

我認爲這種方式,你需要:探討它

for(Version v : Version.valueOf("StandardAnalyzer")) System.out.println(v); 
+0

這樣不會編譯,會不會? – 2011-04-08 16:14:16

0

這個valueOf方法是爲每個方法定義的,並且簡單地將字符串"LUCENE_24"轉換爲對應的枚舉常量LUCENE_24

0

我覺得枚舉有沒有讓你安全地選擇要使用的版本。我想如果你是從頭開始的話,你應該選擇最新的版本,否則你應該選擇從一個版本升級到另一個版本。 他們不推薦使用LUCENE_CURRENT常量,以便在選擇新版本庫時不會默默「更新」。

所以基本上我會通過Version.LUCENE_31作爲新項目的配置。枚舉也可以用來比較兩個版本與onOrAfter方法。

不過來回答你的問題,我認爲,(但現在還不能測試),如果由於某種原因,你要使用的valueOf方法你必須通過與版本名稱的字符串。例如Version.valueOf(「LUCENE_23」)。當然,如果你的版本名來自一個配置文件,這將是有用的。

希望能幫到

+0

謝謝你的回答。我使用的版本3.1.0 Lucene的,我貼的原因是因爲每當我用Version.LUCENE_31爲StandardAnalyzer,我得到異常:org.springframework.web.util.NestedServletException:處理程序處理失敗;嵌套異常是java.lang.NoClassDefFoundError:org/apache/lucene/util/Version – MeanwhileInHell 2011-04-08 16:22:48

+0

哦。這是另一個問題。它是唯一給你這個錯誤的lucene類嗎? – Jad 2011-04-08 16:33:52

相關問題