[ 
https://issues.apache.org/jira/browse/LUCENE-2649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryan McKinley updated LUCENE-2649:
----------------------------------

    Attachment: LUCENE-2649-FieldCacheWithBitSet.patch

Here is a new patch that incorporates most of the ideas we have discussed.  I 
tried addressing the larger issue of the FieldCache mess in LUCENE-2665, but 
that is too big to tackle in one go.  After getting something to *almost* work 
for LUCENE-2665, I then just took the EntryCreator stuff and am adding that to 
'LUCENE-2649'

As such, some of the choices about how EntryCreator works are based on future 
plans, and my feel akward today.  Speciffically:

1. In the future, a Cache on the IndexReader should not necessarily be tied to 
a field name.  To do this, the field name parameter should be part of the 
EntryCreator.  In this first pass, we will need to pass the field name twice:
{code:java}
IntValues  vals = cache.getInts(reader, "fieldName", new IntValuesCreator( 
"fieldName", parser, flags ) )
{code}
I think the tradeoff is OK, and makes fewer changes in the future.

2. In the future, the EntryCreator.getCacheKey() should be the only key stored. 
 To fall within the existing structure, the entire EntryCreator is stored on 
the 'custom' field on the internal cache, but the equals and hashCode values 
are bubbled up.  This makes more sense for LUCENE-2665.  For now we need to be 
careful that the EntryCreator classes are reasonable things to store as Keys 
(it includes the Parser, etc)

-----------------------------

I added a bunch of tests to exercise how sequential calls with different 
options behave.

I think this patch is ready to commit to /trunk -- when it is in, I'll make a 
patch for LUCENE-2665.

Since /trunk is now a bit more experimental, and I feel pretty good about the 
feedback this has had I will probably jump the gun and commit soon

> FieldCache should include a BitSet for matching docs
> ----------------------------------------------------
>
>                 Key: LUCENE-2649
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2649
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Search
>            Reporter: Ryan McKinley
>             Fix For: 4.0
>
>         Attachments: LUCENE-2649-FieldCacheWithBitSet.patch, 
> LUCENE-2649-FieldCacheWithBitSet.patch, 
> LUCENE-2649-FieldCacheWithBitSet.patch, 
> LUCENE-2649-FieldCacheWithBitSet.patch, 
> LUCENE-2649-FieldCacheWithBitSet.patch, LUCENE-2649-FieldCacheWithBitSet.patch
>
>
> The FieldCache returns an array representing the values for each doc.  
> However there is no way to know if the doc actually has a value.
> This should be changed to return an object representing the values *and* a 
> BitSet for all valid docs.

-- 
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: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to