You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Shalin Shekhar Mangar (JIRA)" <ji...@apache.org> on 2014/02/24 11:03:20 UTC

[jira] [Resolved] (SOLR-1880) Performance: Distributed Search should skip GET_FIELDS stage if EXECUTE_QUERY stage gets all fields

     [ https://issues.apache.org/jira/browse/SOLR-1880?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shalin Shekhar Mangar resolved SOLR-1880.
-----------------------------------------

       Resolution: Fixed
    Fix Version/s: 5.0
                   4.8

Thanks Shawn and Vitaliy!

I opened SOLR-5768 for another related improvement suggested by Yonik on the solr-user list.

> Performance: Distributed Search should skip GET_FIELDS stage if EXECUTE_QUERY stage gets all fields
> ---------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-1880
>                 URL: https://issues.apache.org/jira/browse/SOLR-1880
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>    Affects Versions: 1.4
>            Reporter: Shawn Smith
>            Assignee: Shalin Shekhar Mangar
>             Fix For: 4.8, 5.0
>
>         Attachments: ASF.LICENSE.NOT.GRANTED--one-pass-query-v1.4.0.patch, ASF.LICENSE.NOT.GRANTED--one-pass-query.patch, SOLR-1880.patch, SOLR-1880.patch
>
>
> Right now, a typical distributed search using QueryComponent makes two HTTP requests to each shard:
> # STAGE_EXECUTE_QUERY executes one HTTP request to each shard to get top N ids and sort keys, merges the results to produce a final list of document IDs (PURPOSE_GET_TOP_IDS).
> # STAGE_GET_FIELDS executes a second HTTP request to each shard to get the document field values for the final list of document IDs (PURPOSE_GET_FIELDS).
> If the "fl" param is just "id" or just "id,score", all document data to return is already fetched by STAGE_EXECUTE_QUERY.  The second STAGE_GET_FIELDS query is completely unnecessary.  Eliminating that 2nd HTTP request can make a big difference in overall performance.
> Also, the "fl" param only gets id, score and sort columns, it would probably be cheaper to fetch the final sort column data in STAGE_EXECUTE_QUERY which has to read the sort column data anyway, and skip STAGE_GET_FIELDS.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org