Lucene系列

来源:互联网 发布:java configuration类 编辑:程序博客网 时间:2024/03/29 13:14

6.1 信息查询原理:
6.1.1 信息查询概述
6.1.2 查询基本流程
6.1.3 查询结果显示
6.1.4 高性能查询

搜索引擎需要处理大数据量的文档,所有文档都经过索引过程完成了预处理。
预处理后的文档库使用倒排索引结构,搜索引擎的信息查询采用了索引查询的方法。

6.1.1 信息查询概述:

在全文检索领域,信息查询的基础方式:
- 1、顺序查询
顺序扫描文档库,分析每一篇文档内容来确定是否找到相关文档。
实现简单,不需对文档进行预处理。用户查询直接域文档内字符串匹配,决定某篇文档是否包含查询关键词。
搜索效率比较低,只适合小规模的文档库。
- 2、索引查询
对文档进行处理,建立一定的索引结构,利用各种检索策略,完成查询工作。
查询快速,但无法应用于文档库快速更新的环境。

信息检索领域的理论模型:
- 1、布尔模型
基于集合论和布尔代数的一种简单检索模型。
把查询串转换为基本关键词组合的与或非组成的关键词组合。
在倒排索引结构中,布尔查询一般先对布尔组合中的每一个关键词进行查询,得到的对应的结果列表进一步组合或归并计算得到目标结果。
- 2、向量模型
在查询串和文档直接分配不同的权值来反应相关度。
查询得到的结果文档集按照权值计算相关度有序排列,所以向量模型得到的匹配文档可以是全部的精确匹配,也可以是部分匹配查询串。

实际的搜索引擎采用两者相结合的方式,基础的匹配计算采用向量检索,但同时支持布尔组合查询检索。

6.1.2 查询基本流程:

用户查询请求输入 -> 查询词预处理 -> 查询词格式化(字典) -> 文本库索引匹配(文档索引库) -> 相似度和排序计算 -> 结果排重与生成。

  • 1、用户查询请求输入
    通常采用web方式输入。
  • 2、查询词预处理
    是针对关键词的净化和筛选过程。通常先过滤停用词,截断超长查询词,最后利用分词程序获得检索项组合。
  • 3、查询词格式化
    通过索引字典对检索项进行格式化,把检索词汇转化成最终的词汇索引编码形式,为后续处理提供方便。
  • 4、文本库索引匹配
    使用查询词的格式化的表示,从文本倒排索引库中获取匹配的检索结果。
  • 5、相似度和排序计算
    决定结果文档的排列次序。
  • 6、结果排重与生成
    判断结果是否重复,避免同一个文档多次出现,判断的依据是文档的内容和编号。

6.1.3 查询结果显示:

6.1.4 高性能查询:

为了满足大量并发查询和检索,通常需要利用多个检索服务器进行并发检索。
为了承载海量的文档内容,需要把内容分布到多台服务器,最后利用通信把结果进一步汇总。
为了充分利用计算机性能,考虑把索引字典保存在内存中,索引也尽量保存在内存,检索磁盘读取。

0 0