首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Solr:没有显式设置默认值的字段的默认值是什么?

Solr:没有显式设置默认值的字段的默认值是什么?
EN

Stack Overflow用户
提问于 2011-09-07 10:10:26
回答 3查看 8.8K关注 0票数 4

我正在使用Solr的schema.xml,并且我知道我可以使用' default‘属性来指定一个默认值,如果未提供给定字段的值,该默认值将被使用。但是,假设我选择不设置“默认”属性,那么Solr将返回到哪个默认值呢?

我认为我为给定字段使用的字段类型将有一个默认值,该值将被使用,但我没有成功地找到有关此字段的任何细节。或者,我认为如果不提供值并没有有效地设置默认值,就好像该字段对于特定文档不存在一样。

然而,我不确定,我想知道:-)

更新1

据我所见,如果没有设置默认值,并且没有为给定字段提供任何值,Solr只会抛出一个错误,并返回一个错误400“坏请求”。换句话说,如果没有提供任何值,并且在schema.xml中没有设置默认值,Solr似乎不会应用任何“回退”默认值。

更新2

我上面的更新似乎是错误的。如果没有为某个字段提供任何值,也没有为该字段设置默认值,则Solr将只将该字段视为该特定文档不存在的字段。当然,如果需要该字段,这种行为并不适用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-07 13:13:34

根据我的经验,如果在加载文档时不指定字段,则Solr只会在该字段索引文档时忽略该字段,而您的语句“不提供值并没有有效地设置默认值”就好像该字段不存在于特定文档一样。问题是,您只需要指定要为给定文档添加的字段。查看Solr分发版附带的xml示例,查看包含不同字段集的一些文件示例。

票数 4
EN

Stack Overflow用户

发布于 2011-09-07 15:13:20

如果在索引期间不为字段提供值,solr将使用schema.xml文件中定义的默认值。如果未定义默认值,solr将忽略此字段。如果字段标记为schema.xml中的要求,则solr将错误地拒绝此文档。

示例:

代码语言:javascript
运行
复制
<field name="comments" type="text" indexed="true" stored="true" required="true"/>
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" />
票数 7
EN

Stack Overflow用户

发布于 2011-09-07 16:21:18

虽然您在名为schema.xml的文件中定义了字段,但Solr文档实际上是无模式。这意味着内部Solr engine (Lucene)没有对每个文档必须具有的字段的任何定义。使用Lucene,您可以轻松地将字段myCompletelyNewField添加到任何文档中,而不会影响其他文档。

那么,schema.xml的原因是什么呢?Solr/Lucene中的每个字段都有几个属性,其中最著名的是indexedstored属性。此外,所有字段都必须绑定到某些内部数据类型和处理单元。例如,必须将id字段存储为string,而description字段必须使用英语分析器进行分析,使用词根过滤器进行清洗等等。将add请求中的所有这些信息传递给Solr是非常不方便的。因为您知道将使用哪些字段并访问Solr服务器(至少在大多数情况下是这样),所以将所有这些信息移到单独的文件中要容易得多。这个文件是schema.xml

因此,现在您必须理解,schema.xml定义的字段是允许的,而不是文档中必须存在的字段。像requireddefault这样的附加修饰符只是在将文档添加到索引之前提供额外的服务。也就是说,required将强制Solr的“前端”检查新文档中是否存在指定的字段。如果是,则会进一步传递文档,否则将拒绝新文档。default会导致同样的检查,但是如果字段不存在,它会使用默认值添加字段并进一步传递文档。

至于您的“不良请求”错误,我想您可能在其他地方有错误,例如在不允许的情况下添加空字段(字段存在,但其值是""),或者对字段使用不正确的值,或者添加一些与实际字段相矛盾的修饰符。

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

https://stackoverflow.com/questions/7332122

复制
相关文章

相似问题

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