Iveely Search Engine 是一款纯C#实现的搜索引擎。Iveely的中文翻译:爱为您。英文全称:I void everything , enjoy loving you! 希望更多的搜索引擎爱好者加入进来,感受分享的快乐。Iveely目标是:不是给用户一堆结果让用户去发现最适合自己的,我希望是返回的就是用户最想要的,用户完全无需筛选,所以Iveely Search Engine 永远没有分页,更希望它能嵌入机器人思维中,成为人类的良师益友。当然现在依然处于文本搜索阶段。我对搜索引擎的观点是: 搜索引擎应该是互联网的学习者,我们应该制定一个规则,让它从一个不识字的孩子逐渐成为一个知识丰富的青年,逐步让它具有人的思维。这不是科幻,而是未来,I Believe!今后为人类服务的各式机器人,要拥有先进知识和灵活思维处理能力,也许只有搜索引擎能够赋予它这些。
在上个月ISE的0.1.0发布,恰隔一个月,ISE的0.2.0今天也和大家见面了,感谢大家的支持,在开源社区已经有20位朋友follow了ISE,感谢他们,当然ISE毕竟只是一个初级版本,它的价值与大家的期望,依然存在一定的差距,希望今天带给大家的0.2.0能让大家喜欢,如果能参与进来就最好,开源主页:http://iveelyse.codeplex.com。
Iveely Search Engine 的0.2.0版本最大的特点就是“ 任务驱动式一键式运行”,简单的说就是,在无人监督的情况下,设定好您的参数,一个本地化的完整搜索引擎就可以利用起来,包含数据、索引更新等等都自动化完成。相对于0.1.0它在以下方面有一定的提升:
1. 添加“帮您推荐” 功能。在搜索结果显示的时候,当命中最佳的网页时,该网页将会为您推荐它觉得其它最好的网页。例如:您到一家餐馆吃饭,这家餐馆非常适合您的口味,那么它将推荐它觉得最好的其它餐品给您。就是这个道理。
2. 添加“缓存处理”功能。在0.1.0的搜索过程中,所有的每次请求,都将从索引中选出合适的网页编号,然后根据网页编号提取出数据,这实际是不合算的,在0.2.0种,添加了缓存策略,在最近搜索过的关键字中直接提取上次的结果缓存,无需从头至尾到数据中提取。主要采用数据结构:哈希双链表。
3. 添加项目IveelySE.Run.Task,主要是讲所有的执行任务以任务机器的方式,选择间隔时间执行以及定期更新数据。例如:爬虫任务,可设定每次完成任务之后,6小时候再重新爬行一次。还有索引系统,定期更新系统,定期更新缓存等等,都即将依赖于IveelySE.Run.Task运行。
4. IveelySE.Web,新建了IveelySE.InternetService,IveelySE.Web是我们搜索的展示,但是我们将其移出,采用网络服务的方式,你需要查看搜索结果,将不再依赖于网页,只需要浏览器中输入http://127.0.0.1:8088/query=您的关键字,即可。
以上是ISE 0.2.0 相对于0.1.0版本的不同之处。
下面我们来看一下,V0.2.0的更具体的情况,我们的一键运行主要是针对IveelySE.Run.Task.exe,在您运行此程序后,您无需关心其它事情。正常情况应该是这样:
您会看到在任务机的驱动下,各个程序按照一定的时间点在执行,但是,你会看到第二行和第四行执行的是相同内容,但是时间上相差10min,这就是设定的,搜索服务每10分钟重新执行一次,原因是对新的索引的重新加载,以达到尽快的搜索到新收录的信息,而不需要人工参与。当搜索服务启动好之后,就可以执行搜索。也许您在犹豫,我在哪儿搜索呢?打开浏览器输入:http://127.0.0.1:8088/query=%E5%BE%AE%E8%BD%AF 您就会看到搜索结果。query=之后的数据就是您的关键词。搜索结果如下:
、
搜索信息全部来自博客园,也许您会发现,界面为什么比0.1.0版本丑多了,这也是此版本的改进,在服务启动的时候,提供了搜索服务url,以及最简单的搜索结果,没有更多的CSS去装饰,让UI开发人员与搜索开发人员脱离,做出更好的UI,当然你也可以进行一定的CSS美工处理,完全可以达到下面的结果
外表只是一层皮而已,最实质的内容是我们最关心的问题。
这是上面搜索结果中的一条,我们的的搜索都有一项特征内容,这是根据TF-IDF等在众多数据中分析出的,这篇网页的关键信息,上例根据特征描述:微软windows发布,实际内容也是相关于windows发布的信息,当然特征分析准确率需要慢慢的提高。