lucene中Field.Index,Field.Store的一些设置

简介: lucene在doc.add(new Field("content",curArt.getContent(),Field.Store.NO,Field.Index.TOKENIZED));

lucene在doc.add(new Field("content",curArt.getContent(),Field.Store.NO,Field.Index.TOKENIZED));


Field有两个属性可选:存储和索引。


通过存储属性你可以控制是否对这个Field进行存储;


通过索引属性你可以控制是否对该Field进行索引。


事实上对这两个属性的正确组合很重要。


Field.Index Field.Store 说明 TOKENIZED(分词) YES 被分词索引且存储 TOKENIZED NO 被分词索引但不存储 NO YES 这是不能被搜索的,它只是被搜索内容的附属物。如URL等 UN_TOKENIZED YES/NO 不被分词,它作为一个整体被搜索,搜一部分是搜不出来的 NO NO 没有这种用法


个人设置这两个属性主要依据还是要看这个Field是否要被索引是否要被存储,Field内容大小,和个人对其索引的重要性还是占了很大的比重。


注:同一Document下可以针对小的Field建立索引,查询出内容过大且存储没有被索引的Field(按查询需求设置)。


总结如下:


1.如果要对某Field进行查找,那么一定要把Field.Index设置为TOKENIZED或UN_TOKENIZED。TOKENIZED会对Field的内容进行分词;而UN_TOKENIZED不会,只有全词匹配,该Field才会被选中。 2.如果Field.Store是No,那么就无法在搜索结果中从索引数据直接提取该域的值,会使null。


补充:


Field.Store.YES:存储字段值(未分词前的字段值)
   Field.Store.NO:不存储,存储与索引没有关系
   Field.Store.COMPRESS:压缩存储,用于长文本或二进制,但性能受损
   Field.Index.ANALYZED:分词建索引
   Field.Index.ANALYZED_NO_NORMS:分词建索引,但是Field的值不像通常那样被保存,而是只取一个byte,这样节约存储空间
   Field.Index.NOT_ANALYZED:不分词且索引
   Field.Index.NOT_ANALYZED_NO_NORMS:不分词建索引,Field的值去一个byte保存
   TermVector表示文档的条目(由一个Document和Field定位)和它们在当前文档中所出现的次数
   Field.TermVector.YES:为每个文档(Document)存储该字段的TermVector
   Field.TermVector.NO:不存储TermVector
   Field.TermVector.WITH_POSITIONS:存储位置
   Field.TermVector.WITH_OFFSETS:存储偏移量
   Field.TermVector.WITH_POSITIONS_OFFSETS:存储位置和偏移量



目录
相关文章
|
NoSQL Java 测试技术
字节二面:Spring Boot Redis 可重入分布式锁实现原理?
字节二面:Spring Boot Redis 可重入分布式锁实现原理?
344 1
|
Linux C语言
Centos7安装gcc环境
当我们拿到新的服务器,需要在服务器上安装各种编译环境,那我们最先需要安装的环境应该是 gcc 的编译环境了,在此基础上再去安装其它的应用,就不会出现问题了
865 1
|
存储 Java Maven
IDEA 中 Project 和 Module 详解与实战
IDEA 中 Project 和 Module 详解与实战
1789 0
IDEA 中 Project 和 Module 详解与实战
|
12月前
|
弹性计算 运维 监控
云产品评测|云服务诊断 (两项功能诊断测评)
从阿里云官方了解到云服务诊断这个产品,作为一位云运维工程师,对这方面是比较持续关注的;本次基于产品的两个常见功能进行体验测试,整体感受下来的效率和体验感是很不错的,实用可靠,推荐使用!
268 25
|
2月前
|
存储 运维 监控
分布式链路追踪实战:SkyWalking vs Zipkin 选型、部署与核心场景解析
分布式链路追踪是微服务架构的“显微镜”,选择合适的工具能大幅提升故障排查效率。SkyWalking适合复杂场景与深度分析,Zipkin则以轻量与生态见长。建议根据团队技术栈和运维能力进行选型,并逐步完善监控指标(如错误率、P99延迟)
|
12月前
|
存储 NoSQL 关系型数据库
【赵渝强老师】什么是NoSQL数据库?
随着大数据技术的兴起,NoSQL数据库(Not Only SQL)得到广泛应用。它不局限于二维表结构,允许数据冗余。常见的NoSQL数据库包括Redis、MongoDB和HBase。Redis是基于内存的高性能数据库,采用单线程模型和多路复用I/O,支持高效的数据结构。MongoDB使用BSON格式存储文档,查询语言强大,类似关系型数据库。HBase基于HDFS,适合数据分析,采用列式存储,支持灵活的列族设计。视频讲解及更多内容见下文。
597 79
|
消息中间件 存储 开发者
实现AMQP的高效消息传递机制
【8月更文第28天】高级消息队列协议 (AMQP) 是一个为消息中间件设计的开放标准应用层协议。它为消息传递系统提供了标准化的方法,从而确保了高性能和可靠性。本文将详细介绍AMQP中的一些关键特性,并通过示例代码展示如何利用这些特性。
395 2
|
12月前
|
弹性计算 应用服务中间件 API
AppFlow:无代码部署Dify并集成到企业微信
本文介绍如何通过计算巢AppFlow完成Dify的无代码部署,并将Dify应用集成到企业微信中使用。具体步骤包括:创建企业微信应用,获取AgentID和Secret;使用计算巢AppFlow模板创建连接流,配置Dify和企业微信的鉴权凭证;配置企业微信API接收消息和可信IP;最后测试应用确保正常运行。文中还提供了常见问题的解决方案,如域名主体校验未通过和配置企业可信IP报错等。
2899 11
AppFlow:无代码部署Dify并集成到企业微信
|
数据可视化 测试技术 PyTorch
昆仑万维「天工」Skywork-13B魔搭社区首发开源!魔搭最佳实践来了!
作为国内最具诚意的开源百亿大模型,「天工」Skywork-13B系列无需申请即可实现商用,授权链路极简,且无用户数、行业、公司规模限制。
|
存储 数据采集 监控
CDGA\如何建立实现数据治理的效率价值框架:实践案例解析
数据治理是一个持续优化的过程。组织应建立健全的监督与评估机制,定期对数据治理工作进行评估,发现问题及时整改。广东药科大学通过数据全景图和数据监控大屏,实现了对数据治理成果的动态、多维度呈现与监控,为科学管理决策提供了有力支撑。

热门文章

最新文章