lucene-solr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Klaas (JIRA)" <>
Subject [jira] Commented: (SOLR-52) Lazy Field loading
Date Wed, 06 Dec 2006 19:30:21 GMT
    [ ] 
Mike Klaas commented on SOLR-52:

Thanks for reminding me, Hoss.

Changes committed in r479793.  I will reopen if I discover problems.

> Lazy Field loading
> ------------------
>                 Key: SOLR-52
>                 URL:
>             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,
> 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
> 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:
For more information on JIRA, see:


View raw message