Lucene in action 第一章 初识Lucene
2015-04-27 20:49
351 查看
1.3 搜索程序组件
Lucene提供搜索程序的最核心模块:索引模块和搜索模块的类库。
Solr基于Lucene,提供更丰富的UI和API可以直接部署和使用
下图为搜索程序的基本框架。中间黑体部分为Lucene完成的功能,也是搜索引擎的最核心部分。
![](http://images.cnitblog.com/blog2015/733380/201504/271915170524913.png)
搜索引擎评价:
满足基本功能:搜索结果正确显示
搜索回复时间
扩展功能:语法纠错,关键词高亮等
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:
Lucene提供搜索程序的最核心模块:索引模块和搜索模块的类库。
Solr基于Lucene,提供更丰富的UI和API可以直接部署和使用
下图为搜索程序的基本框架。中间黑体部分为Lucene完成的功能,也是搜索引擎的最核心部分。
![](http://images.cnitblog.com/blog2015/733380/201504/271915170524913.png)
搜索引擎评价:
满足基本功能:搜索结果正确显示
搜索回复时间
扩展功能:语法纠错,关键词高亮等
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:
相关文章推荐
- lucene in action 第一章
- JUnit in Action 2nd Edition 第一章 JUnit 概述 (1)
- JUnit in Action 2nd Edition 第一章 JUnit 概述(2)
- Spring in Action 学习笔记—第一章开始Spring之旅
- Lucene in Action阅读笔记(1)--Yin
- Spring In Action 4(Spring实战第四版)翻译与理解 第一章 付诸行动
- 2009-03-17读书记录:《Manning iBATIS in Action》第一章:iBATIS基础原理
- 第一章:初识lucene
- Spring in Action(第一章 Spring之旅)
- Spring实战(第4版) Spring Inaction 笔记(第一章)依赖注入和AOP
- LuceneInAction小结一下
- 《Lucene in Action 第二版》第4章节 学习总结 -- Lucene中的分析
- netty in action第一章netty介绍
- SPRING IN ACTION 第4版笔记-第一章-002-DI介绍
- Spring in Action 学习笔记—第一章 开始Spring之旅(转贴)
- 《Lucene in Action》 MoreLikeThis 实例
- Lucene in Action
- Activiti in Action(实战Activiti)-第一章 BPMN 2.0: what’s in it for developers?(2)
- LuceneInAction(第2版)学习笔记——第一章 初识Lucene
- 《Lucene In Action》第三章.搜索