接上一部分:搜索引擎-架构概述(1)
查询处理系统
查询处理系统主要包含三个构件:用户交互、排序和评价。
用户交互组件 (User interaction)
创建查询、完善查询以及向用户展示结果.
比如,将用户的查询转换为索引项.
并将从搜索引擎得到的有序文档列表组织成搜索结果,展示给用户.
1.查询输入 (Query Input)
为查询语言(query language)提供接口和解析器。
查询语言一般只有很少的几个操作符,这些操作符指示应该对查询作特殊处理。
比如布尔型操作符,AND、OR和NOT,当然也包括临近操作符(proximity)。
查询语言的作用,一是用来描述更加复杂的查询,二是描述查询转换的结果。
2.查询转换 (Query Tranformation)
改进初始查询,在生成有序的文档前后提供完善处理。
包括一些文本转换的技术。
比如分词、停用词去除和词干提取,以生成可以和文档的索引项可以匹配的索引项。
拼写检查(spell checking)和查询建议(query suggestion)用于生成和用户查询相似的输出。
查询扩展(query expasion)和相关性反馈(relevance feedback)技术,使用额外的词项来修改初始查询。这些词项的来源,主要是对文档中词项的出现情况、用户认为相关的文档中出现的词项等分析为基础。
3.结果输出 (Results Output)
对已经排好序的文档结果进行展示。
包括生成文档摘要(snippets)和高亮关键字和关键段落(highlighting)。
另外,也可能包括对文档集进行聚类展示,并添加一些相关的广告。
排序组件 (Ranking)
利用查询和索引生成有序的文档列表.
这个搜索引擎的核心组件,它接收用户查询,并根据检索模型得到一个按分值排好序的文档列表.
排序必须满足高效、优质.
1.评分 (Scoring)
使用评分算法为文档进行评分,这是文档排序的基础。
评分组件是搜索引擎的核心.
一般的评分可描述为:
∑iq