Web下使用lucene.net需要注意的問題

 

eaglet的分詞組是應用於winform上的.所以用到web應用程序得改造下路徑

在寫類庫項目時,經常會有某些特殊業務需要用到服務器端的物理路徑,使用傳統的System.IO.Directory.GetCurrentDirectory()方法返回的則是WINNT/System32目錄,這個一般不能滿足正常的業務需求,而要得到具體運行DLL所在的物理目錄可以通過Assembly.GetExecutingAssembly().CodeBase屬性來取得


打開 KTDictSegAnalyzer 項目
找到m_SimpleDictSeg.LoadConfig("KTDictSeg.xml");改成
m_SimpleDictSeg.LoadConfig(GetAssemblyPath() + "KTDictSeg.xml");

在後面加上GetAssemblyPath的定義
內容如下:
private string GetAssemblyPath()
{
string _CodeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;

_CodeBase = _CodeBase.Substring(8, _CodeBase.Length - 8); // 8是 file:// 的長度

string[] arrSection = _CodeBase.Split(new char[] { '/' });

string _FolderPath = "";
for (int i = 0; i < arrSection.Length - 1; i++)
{
_FolderPath += arrSection[i] + "/";
}

return _FolderPath;
}
把xml文件放到bin目錄下
在xml中自定義詞典路徑

 

1. 確定 GetAssemblyPath() + "KTDictSeg.xml" 這個文件路徑確實是KTDictSeg.xml所在的文件路徑。
2. 確認在這個路徑下的文件對於對於IIS_WPG這個羣組具有讀權限
3.如果還是不行,請找一下幾個可能的目錄下有沒有 KTDictSeg.log這個文件

 

 

發佈了70 篇原創文章 · 獲贊 5 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章