文本搜索引擎lucene
1、介绍
Apache Lucene 是完全用Java编写的高性能,功能齐全的文本搜索引擎库。它是一项适用于几乎所有需要全文搜索的应用程序的技术,尤其是跨平台的应用程序。
2、Lucene、Solr、Elasticsearch之间的联系
Solr、Elasticsearch都是Lucene实现的产品。Solr功能相对于Elasticsearch更强大,但Elasticsearch的实时搜索更强。
3、常见的数据结构有哪些?
结构化数据: 用表、字段表示的数据。每个字段都是固定结构
半结构化数据: json、xml 、html。每个属性都是不确定的结构
非结构化数据: 文本、文档、图片、音频、视频等没有固定结构的
结论:
数据库只适合查询结构化数据。互联网初期,数据都是存储在数据库,对一些文本数据的检索,我们一般使用where text like ’%胡桃七子%‘,因为like只有右匹配才会走索引,所以数据量大时,这样查询会很慢。所以便有了全文检索技术的产生,而Lucene就是一个全文检索技术开发工具包。
4、索引
如上图所示,本来是Hello world 对应Hello world两个词(图左所示),而lucene会通过分词器,对文本进行分词处理(图片没有把所有词统计),然后统计出现的次数,并记录出现的数据id。(图右所示)。从文本-词变成了词-文本。这就是lucene使用的索引方式,倒排索引。
4.1索引创建步骤
步骤 | 标题 | 描述 |
---|---|---|
1 | 获取原始内容 | 任何搜索应用程序的第一个步骤是收集在其上的搜索是要进行的目标内容。 |
2 | 构建文档 | 下一步是建立从原始内容的搜索应用程序可以理解和容易理解的文件。 |
3 | 分析文档 | 在索引过程启动,该文件是要分析作为其文本部分是一个候选索引。这个过程被称为分析文档。 |
4 | 索引文件 | 一旦文档被构建和分析,下一步是将索引它们使得该文件可被检索 |
5、数据结构单元
document是lucene的基本逻辑单元。filed属性存储相关的字段。
跟数据库相比,一个document便是一行数据,一个filed相当于列。
这里只是简单介绍一下,后续会做更详细的介绍。。。
6、总结
lucene是一个工具包,所以相对于Solr和Elasticsearch更加灵活。如果是技术大牛,可以通过lucene实现更简洁、更高速的搜索引擎。
欢迎扫描下面图片关注我的个人公众号,回复“资源”可以获取java核心知识整理和经典书籍
文本搜索引擎lucene相关推荐
- 文本搜索引擎Lucene之filed详解和代码测试
1.索引创建和查询过程 文档数据采集,一般是数据库的数据和爬虫获取的数据.而Lucene不提供信息采集的类库,需要自己编写一个爬虫程序实现信息采集,也可以通过一些开源软件实现信息采集,如下: Solr ...
- 搜索引擎lucene
引用:http://baike.baidu.com/view/371811.htm Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它 ...
- 搜索引擎lucene点滴
搜索引擎lucene点滴 在项目中有用到搜索引擎lucene.现将学到的lucene中的一些知识点和用法的做了下总结,希望能够对大家有所帮助. 本项目中的lucene使用概述:在Portal项目中lu ...
- 5分钟了解搜索引擎Lucene的原理
场景 假设现在有10W+份word文档,让你做个web页面,给出关键词能快速搜索结果,你会怎么做?那至少有3种方案, 顺序扫描,每次检测文档中是否包含关键词,包含则加入结果列表,不包含继续查找下一个, ...
- 一个例子学懂搜索引擎(lucene)
http://www.vifir.com/html/20080827/1703937.html 一个例子学懂搜索引擎(lucene) 来源:javaeye 作者: phz50 2008-08-27 1 ...
- 阿里P8架构师谈:开源搜索引擎Lucene、Solr、Sphinx等优劣势比较
开源搜索引擎分类 1.Lucene系搜索引擎,java开发,包括: Lucene Solr Elasticsearch Katta.Compass等都是基于Lucene封装. 你可以想象Lucene系 ...
- 主流搜索引擎Lucene,Solr,ElasticSearch
Lucene Lucene是一个Java全文搜索引擎,完全用Java编写.Lucene不是一个完整的应用程序,而是一个代码库和API,可以很容易地用于向应用程序添加搜索功能. 可扩展的高性能索引 在现 ...
- 搜索引擎Lucene(6):查询结果高亮及词频提取
1.结果高亮 Lucene对高亮显示提供 了两种实现模式,Highlighter和FastVectorHighlighter.FastVectorHighlighter速度快,功能更完美.但其是有一定 ...
- 开发自己的搜索引擎--Lucene 2.0+Heriterx(目录)
第一篇 搜索引擎入门 第1章 搜索引擎与信息检索 1 1.1 搜索引擎的历史 1 1.1.1 萌芽:Archie.Gopher 1 1.1.2 起步:Robot(网络机器人 ...
- Elasticsearch - 搜索引擎Lucene
1.1. Scaling Lucene 怎样在Lucene之上构建一个分布式.高度伸缩.接近实时的搜索引擎呢? 让我们回顾一下在搜索引擎(基于lucene)伸缩性这条路上都做了那些尝试,并且elast ...
最新文章
- R语言plotly可视化:plotly可视化互相重叠的归一化直方图并在直方图中添加密度曲线kde、设置不同的直方图使用不同的分箱大小(bin size)、在直方图的边缘添加边缘轴须图
- R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战
- 牛X,这次Windows太给力了!!!
- python中numpy.ndarray与list的区别?以及用matplotlab.pyplot绘图时的注意事项。
- ArcGIS Engine 10开发环境的一些常见问题(转载)
- 开源 一套 Blazor Server 端精致套件
- python的排序方式
- log添加 oracle redo_添加Redo log Member/Group-Oracle
- 整理了4个B端产品调研网站,不花一分钱获得最全面的产品体验
- 进程和线程不属于标准c语言,经典C语言面试题6:进程与线程的关系和区别
- 【面试题】---前端需要掌握的知识点-----更新...
- linux内存中的文件权限,理解Linux文件权限
- unity3d shader 自定义光照函数
- bash脚本运行报错问题原因及解决方法
- Intellij Idea更换编程字体
- 如何让Excel输入数据后自动保护,不能被修改
- 百分浏览器cent browser 和他的扩展程序朋友们
- 聚宽-彼得·林奇的成功投资策略
- 是一套基于PHP,zhw_cms 中和网企业建站系统这是一套基于PHP的快速 ,主要适用于中小 建立 WEB(ASP,PHP,...) 267万源代码下载- www.pudn.com...
- 获取目标RDP登录凭据