lucene 索引中文档的属性建立与不建立带来的影响总结

 2023-09-15 阅读 21 评论 0

摘要:索引中文档的属性建立与不建立带来的影响总结 1.依据文档的某属性去查找索引的话,只会返回带有此属性(如果你对当前属性设定了条件,那么需要满足当前条件)的所有文档,没有建立此属性的文档是不会在返回结果文档中的,不管你的属性值类型是什么(st

索引中文档的属性建立与不建立带来的影响总结
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属性,但两个文档的属性是没有的,那么文档会按建立的先后顺序返回,不管你是升序或者是降序,结果都是一样的

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/65344.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息