听说倒排序索引好长时间了 感觉挺神秘的 ,下面我们通过一个例子来解读一下什么是倒排序索引结构。
假设有两片文章 如下,
文章1:Tom lives in Guangzhou,I live in Guangzhou too.
文章2:He once lived in Shanghai.
lucene要对这两片文章简历索引,大概的步骤是这样的
1.找出文章中的所有单词,这个非常简单啦
2.去掉这些单词中无意义的, 如 in too等
3.还原单词,如lives lived 还原成live。中文就没有这个问题啦
4.建立倒排序索引结构
我们重点看一下这两篇文章的倒排序索引结构是什么样子,
关键字 文章号
Guangzhou 1
live 1,2
shanghai 2
这就是传说中的倒排序索引了------通过关键字 找到文章号
这些关键字在lucene中叫做term
lucene中还有一个field的概念,主要是用来描述term出现在哪儿的,如live是出现在文章内容中还是文章标题中的,一个term可能有多个field。
如果要搜索live,很方便的就可以找到对应的文章号,而不需要进行全文扫描,这样就大大提高了速度,也提升了服务器性能。
当然lucene的索引文件并没有这么简单,通常还会有出现频率 出现位置(为高亮显示)等
参考
http://hi.baidu.com/zhaolijun08/blog/item/d15c7a082e7c4e33e92488df.html
分享到:
相关推荐
3. **建立搜索索引**:Lunecy负责对数据进行索引,创建倒排索引,以便于快速查找匹配的文档。Elasticsearch会自动处理这些工作,只需要配置好索引模板即可。 4. **查询执行**:通过Elasticsearch的查询DSL(Domain ...
此外,Lucene还引入了倒排索引,这是一种高效的存储方式,通过记录每个词项在哪些文档中出现,来实现快速的查找。 3. **查询解析与执行** Lucene提供了`QueryParser`类,用于将用户输入的查询字符串转化为内部表示...
首先,Lucene的核心功能包括文档索引、搜索、排序和高亮显示。它支持多种文本分析器,可以处理多种语言的文本,对中文也有很好的支持。在Linux环境下,Lucene可以通过Java虚拟机(JVM)运行,兼容各种Linux发行版。 ...
内容概要:本文档详细介绍了Netty框架的核心概念、特点、线程模型、序列化协议选择及其实现细节。首先对比了BIO、NIO和AIO的区别,重点阐述了NIO的非阻塞特性及其基于事件驱动的工作原理。接着深入讲解了Netty的高性能表现,包括零拷贝技术、心跳机制、内存管理、流量整形等方面。文档还探讨了Netty的线程模型,包括单线程、多线程和主从多线程模型,并解释了NIOEventLoopGroup的源码实现。此外,文档讨论了TCP粘包/拆包问题及其解决方案,以及常见的序列化协议(如JSON、Protobuf、Thrift等)的特点和适用场景。 适合人群:具备一定网络编程基础,特别是对Java NIO和Netty框架有一定了解的研发人员和技术专家。 使用场景及目标:①理解NIO与传统BIO的区别,掌握NIO的非阻塞特性和事件驱动模型;②深入了解Netty的高性能设计原则,包括零拷贝、心跳检测、内存管理和线程模型;③掌握TCP粘包/拆包的原理及解决方案;④根据具体应用场景选择合适的序列化协议。 阅读建议:本文档内容较为深入,建议读者在阅读过程中结合实际代码和应用场景进行理解。对于Netty的线程模型和序列化协议部分,可以通过实际编程练习加深理解。特别地,理解NIOEventLoopGroup的源码实现需要有一定的Java多线程编程基础。
美高森美提供的SmartFusion2 SoC FPGA双轴电机控制套件带有模块化电机控制IP集和参考设计.doc
内容概要:本文详细介绍了使用三菱FX1S系列PLC和威纶通触摸屏构建双伺服打孔机控制系统的开发过程。主要内容涵盖系统架构、PLC程序设计、触摸屏配置以及开发中常见的注意事项。系统的核心在于通过PLC控制伺服电机完成精确的打孔动作,触摸屏则用于参数设置和运行监控。文中还讨论了伺服电机的参数配置、循环控制逻辑、MODBUS通信配置、界面设计及实时数据更新等方面的内容。此外,作者分享了一些实际开发中的经验和教训,如伺服电机的过冲和欠冲问题、程序稳定性的保障措施以及触摸屏响应速度的优化。 适合人群:从事自动化控制领域的工程师和技术人员,尤其是对PLC编程和伺服控制有一定基础的人群。 使用场景及目标:适用于需要高精度定位和控制的工业应用场景,如钣金加工车间。目标是帮助读者掌握双伺服打孔机的开发流程,提高系统的稳定性和效率。 其他说明:文中提到的技术细节和实践经验对于理解和解决类似项目的难题非常有帮助。建议读者在实践中结合具体情况进行调整和优化。
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
呼伦贝尔市-满洲里市-街道行政区划_150781_Shp数据-wgs84坐标系.rar
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
Java基于springboot+vue的资产管理系统源码+数据库(高分项目),个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业。 Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据库(高分项目)Java基于springboot+vue的资产管理系统源码+数据
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
街道级行政区划shp数据,wgs84坐标系,直接使用。
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
鄂尔多斯市-乌审旗-街道行政区划_150626_Shp数据-wgs84坐标系.rar
适用范围:Thinkphp蓝色响应式后台源码 系统设置、导航管理、配置管理、上传管理、用户管理、功能模块和插件管理 源码开发语言:PHP+MYSQL 源码描述说明: thinkphp蓝色大气的响应式后台模板,常用的后台功能有:系统设置、导航管理、配置管理、上传管理、用户管理、功能模块和插件管理等。
大同市-云冈区-街道行政区划_140214_Shp数据-wgs84坐标系.rar