首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lucene多值场-混合TextField与StringField

Lucene多值场-混合TextField与StringField
EN

Stack Overflow用户
提问于 2013-06-11 13:01:04
回答 1查看 1.8K关注 0票数 3

我使用一个多值字段查询我的索引。在索引字段期间,使用几个字段创建字段,其中一些字段是TextField,有些是StringField

我遇到的问题是,通过使用查询查询索引,我得到了更多的单词: java.lang.IllegalStateException: someField字段是在没有位置数据的情况下索引的;不能运行PhraseQuery (term=someTerm)

我改变了创建多值字段的方式,只使用了TextField,并且发现了问题。

似乎TextFieldStringField不应该混合在一个多值字段中。我说的对吗?有人能给我解释一下为什么(或者为什么不)吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-11 15:41:22

StringField显式地设置为只存储文档(仅限),该文档省略了存储的频率和位置。因为它实际上是一个关键字字段,并且多个单词将被存储为一个单一的标记,所以对它运行短语查询是没有意义的。

虽然可以将不同的字段类型混合到同一个字段中,但这似乎会给我带来混乱和不可预测的结果。我建议在添加到特定字段的类型上保持一致,如果您需要使用管理它们的明显不同的逻辑添加值,比如TextField与StringField之间的差异,那么最好将它们放在索引中的不同字段中。

如果这种情况发生在某种“通吃”、“方便”字段(如来自这个SOLR示例这个SOLR示例字段)中,那么对任何事情都使用TextField可能是一个合理的想法。

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

https://stackoverflow.com/questions/17044778

复制
相关文章

相似问题

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