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 高性能查询:
为了满足大量并发查询和检索,通常需要利用多个检索服务器进行并发检索。
为了承载海量的文档内容,需要把内容分布到多台服务器,最后利用通信把结果进一步汇总。
为了充分利用计算机性能,考虑把索引字典保存在内存中,索引也尽量保存在内存,检索磁盘读取。
- Lucene系列
- Lucene系列
- Lucene系列
- Lucene系列
- Lucene系列
- Lucene系列
- Lucene系列
- Lucene系列
- Lucene系列
- Lucene系列
- Lucene系列
- Lucene.net 系列一
- Lucene.net 系列一
- Lucene.Net系列一
- Lucene.net 系列一
- Lucene.net 系列一
- lucene系列教程
- lucene系列教程
- 用RxJava实现事件总线(Event Bus)
- 欢迎使用CSDN-markdown编辑器
- 关于字符串的copy函数
- android中webView JS调用Android的方法、webView的下拉刷新(SwipeRefreshLayout)、下载文件
- 重建二叉树
- Lucene系列
- Java中的异常处理
- Android pluginMVPM 可插拔MVP框架
- [RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED
- Bookmarklet
- Instant Run is disabled for non-debug variants
- 深入PHP面向对象、模式与实践——执行及描述任务(3)
- ForkJoinPool/fork/join
- Centos下搭建SVN服务器