您的位置:首页 > 其它

Lucene in action 第一章 初识Lucene

2015-04-27 20:49 351 查看
1.3 搜索程序组件

Lucene提供搜索程序的最核心模块:索引模块和搜索模块的类库。

Solr基于Lucene,提供更丰富的UI和API可以直接部署和使用

下图为搜索程序的基本框架。中间黑体部分为Lucene完成的功能,也是搜索引擎的最核心部分。



搜索引擎评价:

  满足基本功能:搜索结果正确显示

  搜索回复时间

  扩展功能:语法纠错,关键词高亮等

1.3.1索引组件

搜索引擎原理:

  朴素思想:顺序搜索

  问题:速度太慢

  解决:对文本内容建立索引,通过索引返回结果

  1.获取内容:

    网页内容:爬虫工具

    文件系统特定目录,数据库内容:容易获取

    内容分散(文件系统,局域网内容等):不易获取有

    权限管理的系统:更复杂,需要获取root权限,获取权限列表,实现搜索的权限控制

  内容获取要求以增量的形式运行:可以实时更新

  Lucene不提供内容获取,完全依赖你自己的程序或第三方程序:

    solr:支持数据库,xml,集成tika

    nutch:网络爬虫

    lily:solr+hadoop的分布式搜索系统

  2.建立文档:

  将所有格式的内容(各类文件,数据库的一条记录等)转换成Lucene识别的搜索引擎文档类:Document。document主要包括带值的域,例如标题title,正文content,作者author等等。可以自定义域,还可以运用语义分析器提取正文文本分别写入新的域。

  3.文档分析:

  对文档域值进行分析处理,以便索引。

  主要为分词器和过滤器,实现例如统一大小写,提取词干,分词等操作。

  4.文档索引:将分析的结果进行索引,添加到索引数据库

   倒排索引,第二章详解

1.3.2 搜索组件

  衡量标准

  查全率recall:搜索相关文档的能力

  查准率precision:过滤相关文档的能力

  第3,5,6章详细介绍大量的搜索功能:多项查询,短语查询,通配符,结果ranking等等

  1.用户搜索界面UI:

    非常重要。搜索框要放在显著位置,搜索结果展示也非常重要。Lucene不提供界面,用户提交搜索,转换成相应格式的query与搜索引擎交互

  2.建立查询build query

    将HTML表单或Ajax等网页请求转化成Query对象格式,Lucene提供查询解析器QueryParser,还可以天剑过滤器限制文档集范围(5.6)节,定制查询解析器(6.3节)

  3.搜索查询search query

    查询索引并返回匹配文档。Lucene完成搜索引擎内部复杂的工作机制,同时有非常好的扩展性,可以定制搜索结果的搜集,过滤,排序等功能,参考第6章

    搜索模型:

    纯布尔模型:只返回无序子集

    向量空间模型:查询语句和文档都是高维向量,语句与文档相关性由向量距离得到

    概率模型:采用概率方法计算匹配概率

  4.展现结果:

    用直观经济的方式为用户展现结果,并提供后续操作或向导

1.3.3 搜索引擎其他模块

管理界面:管理大量配置工作,日志,异常显示等等

分析界面:获取大量的用户搜索信息,搜素引擎性能指标等等,Lucene不提供,可以使用Google的API

搜索范围SCALING:

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: