웹 기반 응용 프로그램에서 Lucene을 사용하고 들어오는 모든 요청에 대해 Indexsearcher의 동일한 인스턴스를 다시 사용하려고합니다.IndexSearcher 재사용
이 논리 (C# 사용)는 의미가 있습니까? 제안하십시오.
DateTime lastWriteTime = System.IO.Directory.GetLastWriteTime(myIndexFolderPath);
if (HttpRuntime.Cache["myIndexSearcher"] == null) //Cache is empty
{
searcher = new IndexSearcher(myIndexFolderPath);
HttpRuntime.Cache.Insert("myIndexSearcher", searcher);
HttpRuntime.Cache.Insert("myIndexTimeStamp", lastWriteTime);
}
else //Cache is not empty
{
DateTime cachedDateTime = (DateTime)HttpRuntime.Cache["myIndexTimeStamp"];
if (cachedDateTime == lastWriteTime)//Cache is not yet stale
{
searcher = (IndexSearcher)HttpRuntime.Cache["myIndexSearcher"];
}
else
{
searcher = new IndexSearcher(myIndexFolderPath); //index folder is modified...update searcher
HttpRuntime.Cache.Insert("myIndexSearcher", searcher);
HttpRuntime.Cache.Insert("myIndexTimeStamp", lastWriteTime);
}
}
모든 코드 4 칸을 들여 쓰면 읽을 수 있습니다. – itsadok
감사합니다. 이것을 염두에 두시기 바랍니다. –