首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SOLR中,为什么一个字段是不存储和非索引的?

在SOLR中,为什么一个字段是不存储和非索引的?
EN

Stack Overflow用户
提问于 2019-05-23 13:59:49
回答 1查看 1.2K关注 0票数 4

在Solr关于原子更新的文档中,他们提到一个字段应该是非索引的和非存储的。

6/updating-parts-of-documents.html#in-place-update-example

只有当要更新的字段满足以下三个条件时,才使用此方法执行原子更新操作: 非索引(indexed="false")、非存储(stored="false")、单值(multiValued="false")数值docValues (docValues="true")字段;

<field name="price" type="float" indexed="false" stored="false" docValues="true"/>

做这件事的用例是什么?

这不意味着它不会被查询,也不会在回复中返回吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-24 10:07:01

在这种情况下需要理解的是,设置"docValues=true"是为了替代"index=true":仍然使字段“可查询”,但在面向列的(非反转的)索引中。

..。一种在内部记录字段值的方法,与传统的索引方法相比,在某些目的(如排序和分块)中,这种方法更有效。

实际上,能够在一个排序/面专用字段中进行原子更新是一个示例用例!

请记住,即使将docValues设置为"stored=false",仍然可以获取启用了fl的字段,例如允许使用fl参数检索值。这是因为docValues在某种程度上是“始终”存储的,这取决于默认为“内存”的docValuesFormat (意味着doc值存储在堆中)。

DocValues字段还依赖于默认为true的useDocValuesAsStored,这意味着字段的行为就好像它被定义为stored="true",即使它被定义为stored="false"

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56276942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档