[ https://issues.apache.org/jira/browse/LUCENE-778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12477773 ]
Nicolas Lalevée commented on LUCENE-778: ---------------------------------------- Marker interface is a nice idea, but I think this will make Document handling more painfull. In my use case this will not be optimal. In our application, we have a kind of workflow of Document. We have a big/master index which is holding every data on the system, and then we have specialized index which a part of the big one. The big one is for making big global queries on the whole data. The specialized are specialized for the end application. So the workflow is : * from the raw data, make them as Document and index it in the master index * for each specialized index : ** do the specific query on the master index ** from the retreived document, redecorate it with specialized indexed field ** index the decorated documents in the specialized index Here I just have to decorate the Document retrieved form the master index. With incompatible interfaces, this won't be possible anymore. I will have to reinstanciate a Document each time and repopulate it. So why not keep IndexWriter#addDocument(Document), and just change IndexReader#doc(int) to make it return a kind of DocumentWithOnlyStoredData, with DocumentWithOnlyStoredData extends Document. (the proposed named is horrible, I know !) > Allow overriding a Document > --------------------------- > > Key: LUCENE-778 > URL: https://issues.apache.org/jira/browse/LUCENE-778 > Project: Lucene - Java > Issue Type: New Feature > Affects Versions: 2.0.0 > Reporter: Nicolas Lalevée > Priority: Trivial > > In our application, we have some kind of generic API that is handling how we > are using Lucene. The different other applications are using this API with > different semantics, and are using the Lucene fields quite differently. We > wrote some usefull functions to do this mapping. Today, as the Document class > cannot be overriden, we are obliged to make a document wrapper by > application, ie some MyAppDocument and MyOtherAppDocument which have a > property holding a real Lucene Document. Then, when MyApp or MyOtherApp want > to use our generic lucene API, we have to "get out" the Lucene document, ie > do some genericLuceneAPI.writeDoc(myAppDoc.getLuceneDocument()). This work > fine, but it becomes quite tricky to use the other function of our generic > API which is genericLuceneAPI.writeDocs(Collection<Document> docs). > I don't know the rational behind making final Document, but removing it will > allow more object-oriented code. -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]