分布式系统学习笔记

Lab1.Distributed Password Cracker

实验内容:

概述
实现一个基于互联网环境的分布式”密码”暴力破解应用,”密码”由不可逆的Hash函数生成

阅读全文 »

Lucene和搜索程序

Lucene只是一个提供建立索引和搜索功能的工具箱
以下是一个普通搜索程序的必要组件

索引组件

  • 获取内容
    包括从网络,文件系统,数据库,获取数据内容,获取内容的难易程度和功能需求紧密相关,Lucene不提供内容获取功能

  • 建立文档
    将原始内容转化为便于索引的部件(Document).文档包含一些带值的域用于描述文档.
    例如:documen.add(new TextField("fieldName","content"))
    问题的关键是将内容分割成合适的DocumentField

  • 文档分析
    Lucene提供了大量的分析器,可以对文档的整个内容进行语义上的分析,分割,提取等等控制性的操作,最后生成对建立索引有益的语汇单元

  • 文档索引
    将文档加入到索引列表

搜索组件

从索引中查找单词,从而找到包含该单词的文档

  • 用户界面(UI)
    互联网高度发达的今天用户交互体验已经上升到了决定产品成败的关键地位.用户从用户界面提交一个搜索请求,该请求首先转换成合适的查询(query)对象格式,供搜索引擎使用

  • 建立查询(Build Query)
    Lucene提供QueryParse,将用户输入的文本处理成查询对象

  • 搜索查询(Search Query)
    查询索引并返回于查询语句匹配的文档,可以对查询结果进行搜集,过滤,排序

  • 展现结果

搜索程序的其他模块

  • 管理模块
  • 分析模块
  • 搜索范围