On Tue, Jul 5, 2011 at 5:13 PM, Chris Hostetter
<hossman_luc...@fucit.org> wrote:
> : Correct me if I am wrong:  In a standard distributed search with
> : QueryComponent, the first query sent to the shards asks for
> : fl=myUniqueKey or fl=myUniqueKey,score.  When the response is being
> : generated to send back to the coordinator, SolrIndexSearcher.doc (int i,
> : Set<String> fields) is called for each document.  As I understand it,
> : this will read each document from the index _on disk_ and retrieve the
> : myUniqueKey field value for each document.
> :
> : My idea is to have a FieldCache for the myUniqueKey field in
> : SolrIndexSearcher (or somewhere else?) that would be used in cases where
> : the only field that needs to be retrieved is myUniqueKey.  Is this
> : something that would improve performance?
>
> Quite probably ... you typically can't assume that a FieldCache can be
> constructed for *any* field, but it should be a safe assumption for the
> uniqueKey field, so for that initial request of the mutiphase distributed
> search it's quite possible it would speed things up.

Ah, thanks Hoss - I had meant to respond to the original email, but
then I lost track of it.

Via pseudo-fields, we actually already have the ability to retrieve
values via FieldCache.
fl=id:{!func}id

But using CSF would probably be better here - no memory overhead for
the FieldCache entry.

-Yonik
http://www.lucidimagination.com



> if you want to try this and report back results, i'm sure a lot of people
> would be interested in a patch ... i would guess the best place to make
> the chance would be in the QueryComponent so thta it used the FieldCache
> (probably best to do it via getValueSource() on the uniqueKey's
> SchemaField) to put the ids in teh response instead of using a
> SolrDocList.
>
> Hmm, actually...
>
> there's no reason why this kind of optimization would need to be specific
> to distributed queries, it could be done by the ResponseWriters directly
> -- if the field list they are being asked to return only contains the
> uniqueKeyField and computed values (like score) then don't bother calling
> SolrIndexSearcher.doc at all ... the only hitch is that with distributed
> search and using function values as psuedo fields and what not there are
> more places calling SolrIndexSearcher.doc then their use to be ... so
> maybe putting this change directly into SolrIndexSearcher.doc would make
> the most sense?
>
>
>
> -Hoss
>

Reply via email to