我正在构建一个 ASP.NET MVC 站点,我在其中使用 Lucene.Net 进行搜索查询。我在这里问了一个关于如何在 ASP.NET MVC 应用程序中正确构建 Lucene.Net 使用的问题,并被告知最好的方法是将 my 声明IndexWriter
为public static
,以便可以重复使用。
这是我的 SearchController 顶部的一些代码:
public static string IndexLocation = Server.MapPath("~/lucene");
public static Lucene.Net.Analysis.Standard.StandardAnalyzer analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer();
public static IndexWriter writer = new IndexWriter(IndexLocation,analyzer);
既然writer
是静态的,IndexLocation
也必须是静态的。因此,编译器给我以下错误Server.MapPath()
:
非静态字段、方法或属性“System.Web.Mvc.Controller.Server.get”需要对象引用
有没有办法从静态字段中使用 Server.MapPath() 或类似的东西?我该如何解决这个错误?