摘要:
好久没写博客了。近期在用solr做一套系统,期间有不少心得尚未记录。这里先记录一下solr中自定义QParser如何与SynonymFilter和RemoveDuplicatesTokenFilter配合以实现检索时Token同义词扩展与Token去重。起初按照solr wiki上的说明,在schema.xml里配置了如下filter:1<analyzer type="query"> 2<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLengt 阅读全文
摘要:
前言 欢迎来到Apache Shiro 10分钟之旅! 希望通过这个简单、快速的示例,可以让你对应用程序中使用Shiro有个深入的了解。嗯,10分钟你应该可以搞定它。 概述 Apache Shiro是什么? Apache Shiro一个功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。 实际上,Shiro的主要功能是管理应用程序中与安全相关的全部,同时尽可能支持多种实现方法。Shiro是建立在完善的接口驱动设计和面向对象原则之上的,支持各种自定义行为。Shiro提供的默认实现,使其能完成与其他安全框架同样的功能,这不也是我们一直努力想要 阅读全文
摘要:
下面是Google翻译的http://wiki.apache.org/nutch/NewScoring内容,是关于Nutch 新的链接分数算法的说明,有点类似于Google的PageRank,这里有其运行的一个例子http://wiki.apache.org/nutch/NewScoringIndexingExample。本页面描述了修订723441新的计分(即WebGraph链接分析)Nutch的功能。又见新的得分例如。目录一般资料WebGraph循环LinkRankScoreUpdater问题如果不忽略内部链接,将LinkRank分数相当于PageRank的分数呢?一般资料新的评分功能 阅读全文
摘要:
Nutch 2.0 的主要一些变化1. Storage Abstraction initially with back end implementations for HBase and HDFS extend it to other storages later e.g. MySQL etc... 这里说的是一个存储层的抽象,因为原来nutch的链接与数据的存储都是在HDFS上的,新的Nutch 2.0准备把存储层进行抽象,使用的是新的NoSql的ORM框架,叫做GORA,下面地址中有其说明http://wiki.apache.org/nutch/GORA_HBase,主页在http://i 阅读全文
摘要:
1. 一些对象说明PluginRepository:这是一个用于存储所有插件描述对象(PluginDescriptor),插件扩展点(ExtensionPoint)和被激活的插件。PluginDescriptor:用于描述单个扩展插件的元信息,它的内容主要是从plugin.xml中得到。Plugin: 用于描述插件的一个抽象,其中包括了一个插件描述符,它们是一对一的关系。ExtensionPoint: 这个扩展点主要是一个面象对象中的接口的意思,就是说可以有多个扩展来实现这个接口,一个或者多个扩展点实际上就是一个插件,如nutch-extensionpoints. Extension: 扩展是 阅读全文
摘要:
1. Nutch 1.3 的页面评分机制 Nutch1.3目前默认还是使用OPIC作为其网页分数算法,但其之后,已经引入了PageRank-like算法,以弥补OPIC算法的不足,目前OPIC算法还是作为Nutch中ScoreFilter扩展点的一个扩展来实现的,而新的LinkRank算法有一个叫做org.apache.nutch.scoring.webgraph的包来对网页进行分数计算,它可以解决OPIC解决不了的问题,一个是重复地抓取页面,会引起那些被抓取的页面重要性增加;另一个是同时新添加的页面必须进行抓取,这样会使整个网络的总cash流通量增加,这样会造成那些没有重复抓取的页面重要性降 阅读全文
摘要:
在Nutch中,大量的可扩展的部分都使用了插件来做,如网页下载时所用的协议选择,解析不同类型的网页,url的过滤和规范化都使用了Nutch的插件机制。 Nutch中插件的主要目标是: 可扩展性:用户可以通过实现相应的接口来生成自己的扩展插件 灵活性:任务人都可以参与插件的编写。 可维护性:插件的开发者只要实现相应的扩展接口,而不需要关注插件的内部原理。 下面对其原理和代码做一个简单的分析。1. 一些概念1.1 插件仓库(PluginRepository) 插件仓库是一个所有插件的注册器,在系统启动时,这个仓库是通过分析插件目录中所有插件的mainfest文件来生成。对于每一个插件都会生成一个插 阅读全文
摘要:
1. 自己扩展一个简单的插件 这里扩展一个Nutch的URLFilter插件,叫MyURLFilter 1.1 生成一个Package 首先生成一个与urlfilter-regex类似的包结构如org.apache.nutch.urlfilter.my 1.2 在这个包中生成相应的扩展文件 再生成一个MyURLFilter.java文件,内容如下: packageorg.apache.nutch.urlfilter.my; importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamRe... 阅读全文
摘要:
新的Nutch使用了Solr来做了后台的索引服务,nutch正在努力与Solr进行更方便的整合,它很好的与Solr处理了耦合关系,把Solr当成一个服务,Nutch只要调用其客户端就可以与其进行通讯。1. bin/nutch solrindex 这个命令是用来对抓取下来的内容建立索引,帮助如下: Usage:SolrIndexer<solrurl><crawldb><linkdb>(<segment>...|-dir<segments>) 这里我们可以看到第一个参数为<solr url>,这是solr服务的一个地址,第二个 阅读全文
摘要:
这里主要是分析一下org.apache.nutch.crawl.LinkDb,它主要是用计算反向链接。1. 运行命令 bin/nutch invertlinks帮助参数说明:Usage:LinkDb<linkdb>(-dir<segmentsDir>|<seg1><seg2>...)[-force][-noNormalize][-noFilter]linkdboutputLinkDbtocreateorupdate-dirsegmentsDirparentdirectoryofseveralsegments,ORseg1seg2...listof 阅读全文