lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Renaud Delbru (JIRA)" <>
Subject [jira] Commented: (LUCENE-2154) Need a clean way for Dir/MultiReader to "merge" the AttributeSources of the sub-readers
Date Tue, 09 Feb 2010 15:17:28 GMT


Renaud Delbru commented on LUCENE-2154:

Sorry in advance, maybe what I am saying is out of scope due to my partial understanding of
the problem.

I have start to look at the problem, in order to be able to use my own attributes from my
own DocsAdnPositionsEnum classes.
would it not be simpler to create a MultiAttributeSource that is instantiated in the MultiDocsAndPositionsEnum.
At creation time, all the AttributeSource of the subreaders (which are available) will be
passed in its constructor. This MultiAttributeSource will delegate the getAttribute call to
the right DocsAndPositionsEnum$AttributeSource. 

There is not a single AttributeSource shared by all the subreader, but each subreader keeps
its own AttributeSource. In this way, attributes are not overridden. The MultiAttributeSource
is in fact like a Wrapper.

One problem is when there is custom attributes, e.g. BoostAttribute. If I understand correctly,
if the user tries to access the BoostAttribute, but one of the subreader does not know it,
the IllegalArgumentException will be thrown. Under the hood, the MultiAttributeSource can
check if the attribute exists on the current subreader, and if not it can rely on a default
attribute, or a previously stored attribute (coming from a previous subreader).

I am not sure if what I am saying is making some sense. It looks to me too simple to cover
all the cases.  Are there cases I am not aware of ? Could you give me some examples to make
me aware of other problems ?

> Need a clean way for Dir/MultiReader to "merge" the AttributeSources of the sub-readers
> ---------------------------------------------------------------------------------------
>                 Key: LUCENE-2154
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: Flex Branch
>            Reporter: Michael McCandless
>             Fix For: Flex Branch
> The flex API allows extensibility at the Fields/Terms/Docs/PositionsEnum levels, for
a codec to set custom attrs.
> But, it's currently broken for Dir/MultiReader, which must somehow share attrs across
all the sub-readers.  Somehow we must make a single attr source, and tell each sub-reader's
enum to use that instead of creating its own.  Hopefully Uwe can work some magic here :)

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message