我正在建立一个ASP.NET MVC网站,在其中使用Lucene.Net进行搜索查询。我在这里问了一个有关如何在ASP.NET MVC应用程序中正确构造Lucene.Net用法的问题,并被告知最好的方法是将my声明为IndexWriter
as 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()或类似的静态字段?如何解决此错误?