1)HTML 處理使用的是htmlagilitypack,其中HtmlEntity.DeEntitize函數處理文本中的轉義字符後, " " 字符映射爲UNICODE 160,影響某些文本的分詞處理。目前沒有好解決方案,我的方法是在調用函數前把這個串過濾掉,畢竟這個串是在文本中出現最多的。
2)關於深度搜索時候,添加到隊列中的URI,默認情況是:“不是本站點的子鏈接,都過濾,不處理”,這個處理應該加個BOOL選項,決定是否調用IsExternalUrl(Uri uri)函數;爲了改動小,可以在此函數裏判斷返回結果。
並且,IsHostMatch(this Uri uriBase, Uri uri)函數存在邏輯問題。
比如:
函數認爲不是一個網站,但是有些情況下,還是需要作爲同一個區域進行搜索的。
臨時解決方法爲:
string scheme = uriBase.GetLeftPart(UriPartial.Scheme);
string hostName = uriBase.GetLeftPart(UriPartial.Authority).Substring(scheme.Length);
hostName = hostName.TrimStart("www.".ToCharArray());
int off = uri.Host.IndexOf(hostName, StringComparison.OrdinalIgnoreCase);
return off > -1 ? false : true;