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;