[ http://issues.apache.org/jira/browse/SOLR-52?page=all ]

Mike Klaas updated SOLR-52:
---------------------------

    Attachment: lazyfields_patch.diff

This version adds a solrconfig parameter which allows lazy fields to be enabled 
or disabled (disabled by default).

Still needs testing after syncing with lucene changes

> Lazy Field loading
> ------------------
>
>                 Key: SOLR-52
>                 URL: http://issues.apache.org/jira/browse/SOLR-52
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>            Reporter: Mike Klaas
>         Assigned To: Mike Klaas
>            Priority: Minor
>         Attachments: lazyfields_patch.diff, lazyfields_patch.diff, 
> lazyfields_patch.diff, lazyfields_patch.diff
>
>
> Add lazy field loading to solr.
> Currently solr reads all stored fields and filters the undesired fields based 
> on the field list.  This is usually not a performance concern, but when using 
> solr to store large numbers of fields, or just one large field (doc contents, 
> eg. for highlighting), it is perceptible.
> Now, there is a concern with the doc cache of SolrIndexSearcher, which 
> assumes it has the whole document in the cache.  To maintain this invariant, 
> it is still the case that all the fields in a document are loaded in a 
> searcher.doc(i) call.  However, if a field set is given to teh method, only 
> the given fields are loaded directly, while the rest are loaded lazily.
> Some concerns about lazy field loading
>   1. Lazy field are only valid while the IndexReader is open.  I believe this 
> is fine since the IndexReader is kept alive by the SolrIndexSearcher, so all 
> docs in the cache have the reader available.  
>   2. It is slower to read a field lazily and retrieve its value later than 
> retrieve it directory to begin with (though I don't know how much--depends on 
> i/o factors).  We certainly don't want this to be the common case.  I added 
> an optional call which accumulates all the field likely to be used in the 
> request (highlighting, reponse writing), and populates the IndexSearcher 
> cache a priori.  This has the added advantage of concentrating doc retrieval 
> in a single place, which is nice from a performance testing perspective.
>  3. LazyFields are incompatible with the sundry Field declarations scattered 
> about Solr.  I believe I've changed all the necessary locations to Fieldable.
> Comments appreciated

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to