lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Grant Ingersoll (JIRA)" <>
Subject [jira] Commented: (LUCENE-1516) Integrate IndexReader with IndexWriter
Date Fri, 20 Feb 2009 13:07:03 GMT


Grant Ingersoll commented on LUCENE-1516:

Good points, MIke, but maybe we don't need all those variants?  String, File and Directory
are all easily enough collapsed down to just Directory.
new IndexWriter(new Directory(indexFile));

Additionally, there are no more variants than there already are on the IW and IR, right? 

As for pass-through or not, I think it would just pass-through, at least initially, but it
certainly leaves open the possibility for reference counting in the future if someone wants
to implement that.

As someone who teaches people these APIs on a regular basis, I feel pretty confident in saying
that adding an IR to the IW as a public API is going to confuse a good chunk of people just
as the delete stuff on the IR currently does now.  You wouldn't ask FileWriter for a FileReader,
would you?  I don't see why it would be good to ask a IW for an IR, API-wise (I get why we
are doing this, it makes sense).

Likewise, isn't it just as logical to ask for an IW from an IR?  If I have an IR already and
I want it to be aware of the writes I want to do, why wouldn't we then add IR.getIW()?  And
then we can have total circular dependency. 

> Integrate IndexReader with IndexWriter 
> ---------------------------------------
>                 Key: LUCENE-1516
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Improvement
>    Affects Versions: 2.4
>            Reporter: Jason Rutherglen
>            Priority: Minor
>             Fix For: 2.9
>         Attachments: LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch,
LUCENE-1516.patch, LUCENE-1516.patch
>   Original Estimate: 672h
>  Remaining Estimate: 672h
> The current problem is an IndexReader and IndexWriter cannot be open
> at the same time and perform updates as they both require a write
> lock to the index. While methods such as IW.deleteDocuments enables
> deleting from IW, methods such as IR.deleteDocument(int doc) and
> norms updating are not available from IW. This limits the
> capabilities of performing updates to the index dynamically or in
> realtime without closing the IW and opening an IR, deleting or
> updating norms, flushing, then opening the IW again, a process which
> can be detrimental to realtime updates. 
> This patch will expose an IndexWriter.getReader method that returns
> the currently flushed state of the index as a class that implements
> IndexReader. The new IR implementation will differ from existing IR
> implementations such as MultiSegmentReader in that flushing will
> synchronize updates with IW in part by sharing the write lock. All
> methods of IR will be usable including reopen and clone. 

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