[
https://issues.apache.org/jira/browse/LUCENE-6271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14329386#comment-14329386
]
Robert Muir commented on LUCENE-6271:
-------------------------------------
I agree, Terms.hasPositions(), Terms.hasFreqs(), Terms.hasPayloads(),
Terms.hasOffsets() should be used for these checks up-front.
For the backwards behavior, in 5.x we could use an internal flag to make this
work. We still need to improve the flags anyway (e.g. to not overlap, and for
the new ones to be a little simpler). This is probably good to do first, I
sitll have the issue open for it.
> PostingsEnum should have consistent flags behavior
> --------------------------------------------------
>
> Key: LUCENE-6271
> URL: https://issues.apache.org/jira/browse/LUCENE-6271
> Project: Lucene - Core
> Issue Type: Bug
> Reporter: Ryan Ernst
>
> When asking for flags like OFFSETS or PAYLOADS with DocsAndPositionsEnum, the
> behavior was to always return an enum, even if offsets or payloads were not
> indexed. They would just not be available from the enum if they were not
> present. This behavior was carried over to PostingsEnum, which is good.
> However, the new POSITIONS flag has different behavior. If positions are not
> available, null is returned, instead of a PostingsEnum that just gives access
> to freqs. This behavior is confusing, as it means you have to special case
> asking for positions (only ask if you know they were indexed) which sort of
> defeats the purpose of the unified PostingsEnum.
> We should make POSITIONS have the same behavior as other flags. The trickiest
> part will be maintaining backcompat for DocsAndPositionsEnum in 5.x, but I
> think it can be done.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]