搜索引擎的架构_读书笔记
来源:互联网 发布:微商城源码下载 编辑:程序博客网 时间:2024/06/01 08:30
一、软件架构
软件架构通常包括软件组件、组件提供的接口以及各组件之间的联系。
UIMA 非结构化信息管理架构
这是一个软件架构的实例,用于提供一个将搜索和相关语言技术整合在一起的标准。它为组件定义了接口,使系统在增加处理文本和其他非结构化数据的技术的时候,变得更加简单。
架构的设计用于保证系统能够满足应用需求或目标。搜索引擎的两个主要目标:
效果(质量)
效率(速度)
二、搜索引擎的基本构件
搜索引擎主要功能:
索引处理(建立可查找的数据结构)
文本采集
发现文档,比如爬虫;
创建文档数据库,记录文档类型、结构等特征信息。
文本转换
将文档转换为索引项或者特征
索引项
是文档的一部分,存储在索引表中用于搜索。比如文档中一个词。
特征
更多应用在机器学习中,是文档的一部分,用于表达文档内容,也可以是索引项。如日期、网页中的超链接等。
索引创建
利用文本转换组件的输出结果,创建索引或数据结构。要求在时间和空间上都是高效的。
查询处理
用户交互
接收用户的查询并将它转换为索引项
从搜索引擎得到一个排好序的文档列表
排序
排序组件是搜索引擎系统的核心,必须是高效的。
评价
用于评测和检测系统的效率和效果,作为调整和改善排序组件的性能。
在线:记录用户和系统的日志数据,分析用户的行为
离线(主要)
三、组件及其功能
(1)文本采集
1. 爬虫
网络爬虫通过追踪网页上的超链接来找到并下载新的页面- site search
基于一个站点,站内搜索
- focused/topical爬虫
采用分类技术限制所访问的网页是关于同一个主题的。适用于垂直搜索和话题搜索系统,如医学信息网站。
- 企业搜索
- 公司内部和外部的页面(通过网页超链接获取)
- 扫描公司和个人的目录,如桌面搜索
2. 信息源
文档信息源(document feed)是一种存取实时文档流的机制。
- 爬虫——发现新的文档
- 阅读器(如RSS)——通过监测信息源,抓取新的文档
3. 转换
将抓取到的文档转换成统一的文本格式和文档的元数据格式。在进一步深入处理之前,保证不同语言的文档使用统一的编码方案进行了转换。
4. 文档数据库
管理大量的文档以及与这些文档相关的结构化数据。
(2)文本转换
1. 解析器
解析组件负责处理文档中的文本词素(tokens)序列,以识别文档中的结构化元素,如标题、图表、超链接和页首文字等等。
- 词素切分(tokenzing)
- 文档结构通常由HTML、XML等标记语言来指定
2. 停用词去除
从成为索引项的词素序列中删除常用词,如“的”
3.词干提取
把同一个词干(stem)得到的派生词进行归类,如“fish”和“fishes”
4.超链接的抽取和分析
- 抽取:从文档中抽取超链接和锚文本
- 分析:分析页面的重要程度,如pagerank算法
5.信息抽取
用于识别更加复杂的索引项,比如公司名称、日期等等。
6.分类器
(3)索引的创建
1. 文档统计
- 文档统计组件
汇总和记录词、特征及文档的统计信息。
- 排序组件
使用上述信息计算文档的分值。
2. 加权
赋予索引项权值,权值的形式由检索模型来确定。
3. 倒排
将文本转换组件传过来的文档—词项信息,转换为词项—文档信息,以便建立倒排索引。
4. 索引分派
(4)用户交互
1. 查询输入
查询输入组件为查询语言提供接口和解析器。
2. 查询转换
用于在生成排好序的文档之前和之后,改善初始查询。如拼写检查和查询建议。
3. 结果输出
展示排好序的文档,包括生成网页摘要、强调文档中重要的词和段落、对文档聚类(如新闻)。
(5)排序
打分机制
性能优化
分布式
(6)评价
日志
排序分析
性能分析
- 搜索引擎的架构_读书笔记
- 搜索引擎的系统架构
- 搜索引擎的体系架构
- 搜索引擎的架构
- 搜索引擎的技术架构
- 搜索引擎的技术架构
- 搜索引擎的技术架构
- 搜索引擎的技术架构
- 搜索引擎的技术架构
- 【搜索引擎基础知识1】搜索引擎的技术架构
- 【搜索引擎基础知识1】搜索引擎的技术架构
- [搜索引擎架构]的几篇文章
- 搜索引擎读书笔记
- 搜索引擎架构
- 搜索引擎架构
- 搜索引擎架构
- 搜索引擎架构
- 一个新的搜索引擎_网易有道
- hdu 5532 Almost Sorted Array(最长不上升子序列、暴力)
- webView打开本地文件和使用第三方网页,以及使用自己的webViewClient
- 星座为什么会有准度且大多数人会符合自己的星座特点
- 超级系统工具Sysdig,比 strace、tcpdump、lsof 加起来还强大
- 实时操作系统若干问题
- 搜索引擎的架构_读书笔记
- Monkey测试简介
- UNIX常用命令
- 线程的sleep,join,yield方法
- C6414上移植LwIP
- Redis配置文件各项参数说明及性能调优
- JVM调优之JVM分代垃圾回收机制
- 安卓广播使用 BroadcastReceiver
- 【Android架构设置篇】之设置界面添加并实现永不休眠功能