nutch

nutch的分布式前台由若干数据服务器(server)及一个客户端(Client)组成

nutch的数据服务器实现了以下几个接口:

  /** The distributed search protocol. */   public interface Protocol     extends Searcher, HitDetailer, HitSummarizer, HitContent {

    /** The name of the segments searched by this node. */     String[] getSegmentNames();   }

nutch把整个前台搜索过程分割成Searcher,HitDetailer,HitSummarier,HitContent这几个过程.

Searcher接受的参数是查询字符串和一些参数,如排序方式,返回的是Hits结构,Hits结构包含一个Hit结构的数组,Hit结构包含的主要是一条检索结果的docid和score

HitDetaiiler接受的参数是Searcher返回的Hit数组,返回的是HitDetails的数组,HitDetails除了含有一条检索结果的docid,还包含了lucene的index中除了docid域中之外的其他域,比如url,上下文.在nutch的实现中HitDetailer和Searcher使用相同的lucene index

HitSummarizer接受的参数是HitDetailer返回的HitDetails数组,它返回上下文标红后的结果

HitContent接受的参数也是HitDetailer返回的HitDetails数组,它返回cache的整个网页

nutch的客户端与其数据服务器间通过org.apache.nutch.ipc.RPC进行通讯,该类实现了Method的远程调用,caller端将Method的参数二进制串行化传到callee端,callee执行后把返回值二进制串行化后再返回给caller的服务器,传输通过socket.

这样Server仅需要实现接口Protocol,Client即可远程调用Server端的函数.

你可能感兴趣的:(server,cache,服务器,Lucene,url,通讯)