LUCENE

倒排索引法
1索引
索引:index
定义:查询时,根据索引实现快速定位。使查询更高效。如-书记目录,超市品类,字典拼音法

2倒排索引计算
2.1
分词analyze : 全文检索技术 把一段文本经过索引加工处理,进行分词实现,每一个计算结果中的字,词,句这个整体文本都是分词计算的词项数据(term)

文档对象 document: 整理之后的对象数据(信息单元),表示一个数据源中的完整数据。是一个对象
域属性field:文档对象虽然是一个整体数据单元,但是可以由不同的属性组成,
如:网页document
文章标题:美国耍赖

文章内容:频繁甩锅,控诉中国疫情信息透露不明确

出版社:新华网

点击次数:58

里面的标题 内容 出版社等都是他的域属性。
(document是对象 他的域属性就是他的属性)

2.2 倒排索引算法(了解索引结构)

数据源2个新闻网页:

web1:
文章标题:美国耍赖
文章内容:频繁甩锅,控诉中国疫情信息透露不明确
出版社:新华网

点击次数:58
web2:
文章标题:美国甩锅
文章内容:美国谎称,援助中国1亿美金,中国外交部称从未收到
出版社:新华网
点击次数:66
document封装,定义域属性(根据数据源定义)
文章标题:title
文章内容:content
出版社:publisher
点击次数:click
doc1:
id:uuid/1
title:美国耍赖
content:频繁甩锅,控诉中国疫情信息透露不明确
publisher:新华网
click:58
doc2:
id:uuid/2
title:美国甩锅
content:美国谎称,援助中国1亿美金,中国外交部称从未收到
publisher:新华网
click:66
对document中的文本内容进行分词计算
分词计算词项,经过二进制计算,词项总会携带计算之后的很多参数
例如,词项对应属性,词项出现频率,词项的位移,词项的所在document的id值
doc1:
美国(1),耍赖(1),甩锅(1),中国(1),疫情(1),明确(1),新华网(1),58(1)
doc2:
美国(2),甩锅(2),谎称(2),中国(2),外交部(2),新华网(2),66(2)
doc3:doc4:…docn
合并词项结果和参数-形成倒排索引表
美国(1,2),甩锅(1,2),中国(1,2),新华网(1,2),耍赖(1),谎称(2)
记录形式,以表格方式记录

词项\docid doc1 doc2 doc3 doc4 …
美国 1 1 0 0 0
甩锅 1 1 0 0 0
中国 1 1 0 0 0
新华网 1 1 0 0 0
耍赖 1 0 0 0 0
谎称 0 1 0 0 0
其他 0 0 1 1 0
… … … … … …

不同的document对象会进行合并,形成了倒排索引表,查询的时候就通过二进制做与运算,这样查询多个条件的时候就会快速锁定都符合条件的documen的对象然后返回。

lucene的分词器

分词器对倒排索引表查询的效率影响非常大,不同的语言不同的情况,适合的分词器是不一样的。常见的分词器有:

StandardAnalyzer–>标准分词器

英文:对词做加工,按照空格,标点分开

中文:字做加工

SimpleAnalyzer—>简单分词器

对空格/标点符号进行切分计算

英文:词加工

中文:段逻,句加工

WhitespaceAnalyzer—>空格分词器

按照空格处理数据

SmartChineseAnalyzer—>智能中文分词器

处理常用的中文词语

重要 IKAnalyzer—>中文分词器(常用)

3 lucene实现功能面临的问题
索引文件不是分布式的,只能保存在本地服务器,不能进行海量存储,但是如今大数据环境下,数据量都普遍偏大,跟不上时代
对于非java开发者,无法使用
所以出现了ELASTICSEARCH

Lucene搜索原理相关推荐

  1. lucene搜索原理讲解

    文档内容分为两部分: 1.索引过程: 2.搜索过程: 注:涉及到实现部分打算在另外一篇文章单独写: 索引过程: 简单的讲,索引过程分为创建索引节点,构建schema,原数据采集,分词,构建doc,提交 ...

  2. 5分钟了解搜索引擎Lucene的原理

    场景 假设现在有10W+份word文档,让你做个web页面,给出关键词能快速搜索结果,你会怎么做?那至少有3种方案, 顺序扫描,每次检测文档中是否包含关键词,包含则加入结果列表,不包含继续查找下一个, ...

  3. 使用 Apache Lucene 搜索文本——轻松为应用程序构建搜索和索引功能

    简介: 本文将探讨 Apache Lucene -- 性能卓越.功能全面的文本搜索引擎库.我们将学习 Lucene 架构及其核心 API.学习如何使用 Lucene 进行跨平台全文本搜索.建立索引.显 ...

  4. Lucene学习总结之七:Lucene搜索过程解析

    一.Lucene搜索过程总论 搜索的过程总的来说就是将词典及倒排表信息从索引中读出来,根据用户输入的查询语句合并倒排表,得到结果文档集并对文档进行打分的过程. 其可用如下图示: 总共包括以下几个过程: ...

  5. Solr空间搜索原理分析与实践

    前言 在美团CRM系统中,搜索商家的效率与公司的销售额息息相关,为了让BD们更便捷又直观地去搜索商家,美团CRM技术团队基于Solr提供了空间搜索功能,其中移动端周边商家搜索和PC端的地图模式搜索功能 ...

  6. lucene查询原理

    lucene查询原理 1. lucene 数据模型 2. lucene 查询过程 3. SkipList 哨兵数组 skipDoc docDeltaBuffer Lucene中使用读取跳表SkipLi ...

  7. Lucene 倒排索引原理

    1 前言 Lucene 作为 Apache 开源的一款搜索工具,一直以来是实现搜索功能的神兵利器,现今火热的 Solr 和 Elasticsearch 均基于该工具包进行开发,我们搜索召回组这边也是基 ...

  8. Java爬虫搜索原理实现

    permike 原文 Java爬虫搜索原理实现 没事做,又研究了一下爬虫搜索,两三天时间总算是把原理闹的差不多了,基本实现了爬虫搜索的原理,本次实现还是俩程序,分别是按广度优先和深度优先完成的,广度优 ...

  9. lucene 搜索_使用Lucene的搜索服务器搜索Jira问题

    lucene 搜索 您可能还记得我的第一篇博客文章 ,该文章描述了Lucene开发人员如何使用Lucene搜索应用程序查找我们的Jira问题来食用我们自己的狗粮. 该应用程序已成为许多现代Lucene ...

最新文章

  1. 「APIO2018」选圆圈
  2. python下载保存_下载并保存图片Python2.7
  3. Java多线程——Thread Runnable源码解析
  4. HashMap 1.7工作原理
  5. python程序员需要掌握哪些技术-高级的python 后端程序员, 应该掌握哪些技能点 ?...
  6. 什么是进程控制块,他有什么用?
  7. java图片转字符_java实现图片转字符图(看的过去的亚子)
  8. Ubuntu 14.04报错: error while loading shared libraries libc++.so cannot open shared object file解决
  9. mdadm命令参数详解
  10. 数据库系统概论第五版学习笔记
  11. 小米6线刷包php文件格式,小米6官方固件刷机教程_线刷|救砖教程图解
  12. hog特征的matlab实现
  13. 今日头条的针锋相对让腾讯开始焦虑,天天快报能否占据一席之位?
  14. Python爬虫实战:css加密 动态字体练习 猿人学比赛题目七题详解
  15. keystone创建服务实体HTTP500,An unexpected error prevented the server from fulfilling your request. HTTP500
  16. 关于PoE供电,你想知道的这里都有
  17. django之csrf_exempt解决跨域请求的问题
  18. 使用JAVA将m3u8转换为mp4格式
  19. 汽车制动盘的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. 手把手的 Numpy 教程

热门文章

  1. linux so自毁指令,iPhone自毁模式怎么设置 充电爆炸快捷指令设置自毁模式方法
  2. 数值方法笔记1:数字表示与误差分析
  3. wordpress响应慢_WordPress中的响应式实时图形:画龙点睛
  4. HIST:微软最新发布的基于图的可以挖掘面向概念分类的共享信息的股票趋势预测框架...
  5. Windows快捷键小结
  6. 1、Ray基本原理及使用
  7. 全志V40/A40I的lichee 的编译
  8. JAVA学习路01——使用JAVA将“.txt”文件拆分、合并
  9. 22,Horizontal Pod Autoscaler(HPA),自动扩缩容
  10. 解决图片不显示的问题