Hi, I wonder if the below is the correct way of doing things...
- when the Hits objects are returned from IndexSearcher (as a result of some search), 'inject' 'info' fields into the 'Hit' objects at runtime by looking the values up in the DB. The main purpose is to avoid storing 'info' fields in the index as 'stored' fields. * in other words, I want to keep in Lucene index ONLY 'indexed' fields and keep all 'stored' fields (some of which might be big BLOB entries) in relational DB. I do want however to provide 'generic' transparent access to these stored fields through Lucene APIs (one of the rational is to be able to use some frameworks around, like Solr, transparently, no matter which fields are stored in index and which are stored in the DB). I wonder if adding 'Fields' to the returned Document object (linked with Hit object) will do the trick for me? In other words, will the below work? Hits hits = indexSearcher.search(luceneQuery); HitsIterator iter = (HitsIterator)hits.iterator(); Hit hit = (Hit)iter.next(); Document doc = hit.getDocument(); String docId = doc.getField("docId"); doc.addField(getFieldBy("someStoredDBField", docId)); Would this disturb the index in any way? Would this be reflected in all other objects in the returned Hits set (eg, will 'hit.get("someStoredDBField")' return the value looked up in the DB?) Thanks. Vlad