lucene 索引中文档的属性建立与不建立带来的影响总结
2024-08-26 21:48:14
索引中文档的属性建立与不建立带来的影响总结
1.依据文档的某属性去查找索引的话,只会返回带有此属性(如果你对当前属性设定了条件,那么需要满足当前条件)的所有文档,没有建立此属性的文档是不会在返回结果文档中的,不管你的属性值类型是什么(string、date、long、int),结果都是一样的
2.查找条件满足,排序不会有任何影响(如果排序的属性文档没有,lucene会按文档建立的先后顺序返回且只会按照这个顺序),只需注意说的第一点
3.索引查找也不会有任何影响,只需注意说的第一点
4.数量查找条件如果满足,绝对正确,但如果是说的第一点的话,那就有问题了
5.如果做数据统一整合的话,建议没有属性的填默认属性,牺牲点微小的存储空间换来正确的查找结果
理论看不懂?举个例子你就懂了
需求:
建立3条数据的索引,每条数据包含weibotime(date)、forwardtims(long)、replytimes(int)等属性
数据建立索引后,变成3个文档:文档A、文档B、文档C
weibotime(date)、forwardtims(long)、replytimes(int)
文档A: 有 有 有
文档B: 无 无 有
文档C: 无 无 有
操作:
Q:查找weibotime并且降序排列
A:返回有weibotime属性的文档,并且结果顺序是降序的,显示当前索引里只有文档A
Q:查找replytimes,weibotime降序排列
A:返回当前3文档,并且结果顺序显示是:文档A、文档B、文档C
Q:查找replytimes,weibotime升序排列
A:返回当前3文档,并且结果顺序显示是:文档B、文档C、文档A,看到这里你可能会觉得奇怪,文档B、C不都没有属性和值吗,为什么B一定排在C前面?这是lucene实现的,查找的属性有,但操作的属性如排序操作weibotime属性,但两个文档的属性是没有的,那么文档会按建立的先后顺序返回,不管你是升序或者是降序,结果都是一样的
最新文章
- MySql LAST_INSERT_ID 【插入多条数据时】
- BZOJ 4544: 椭圆上的整点
- Configuring Locales
- Java 基本数据类型 sizeof 功能【转】
- MPMoviePlayerController 视频播放器—IOS开发
- 55人班37人进清华北大的金牌教师之32条教育建言! z
- 《编程导论(Java)&;#183;2.1.3改写(override)》
- AOP in dotnet :AspectCore的参数拦截支持
- 【memcache】windos下 memcache更改默认的端口和最大使用内存
- 使用AltSearch格式化Kindle读书笔记
- SystemUI中设置横竖屏显示
- BP神经网络算法推导及代码实现笔记zz
- hello1以及hello2的部分代码分析
- TDateTimePicker 选择最小日期时异常处理
- apt-get 使用指南
- 在CentOS上编译安装MySQL 5.7.13步骤详解
- Permission Policies
- 基于html5的多图片上传,预览
- 关于Cocos2d-x中数组的使用
- 使用二叉搜索树实现一个简单的Map
热门文章
- 备份文件的python脚本(转)
- ACM数论-欧几里得与拓展欧几里得算法
- C - 你经历过绝望吗?两次! 【地图型BFS+优先队列(障碍物)】
- java中的控制语句
- [AGC012D]Colorful Balls
- angularjs+requirejs整合
- 爬取维基百科人物介绍,并使用pymysql存储到数据库
- 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架之工作流开发随笔三
- spring MVC中获取request和response:
- 【mybatis】 mybatis在mysql 更新update 操作 更新时间字段按照年月日时分秒格式 更新为当前时间