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

Dallan Quass updated SOLR-1795:
-------------------------------

    Priority: Minor  (was: Major)

> Subclassing QueryComponent for fetching results from a database
> ---------------------------------------------------------------
>
>                 Key: SOLR-1795
>                 URL: https://issues.apache.org/jira/browse/SOLR-1795
>             Project: Solr
>          Issue Type: Improvement
>          Components: SearchComponents - other
>    Affects Versions: 1.4
>            Reporter: Dallan Quass
>            Priority: Minor
>
> This is a request to change the access on a few fields from package to public.
> I've subclassed QueryComponent to allow me to fetch results from a database 
> (based upon the stored uniqueKey field) instead of from the shards. The only 
> stored field in solr is the uniqueKey field, and whatever fields I might need 
> for sorting.  To do this I've overridden QueryComponent.finishStage so that 
> after executing the query, SolrDocuments are created with the uniqueKey 
> field.  A later component populates the rest of the fields in the documents 
> by reading them from a database.
> {code}
> public void finishStage(ResponseBuilder rb) {
>    if (rb.stage == ResponseBuilder.STAGE_EXECUTE_QUERY) {
>       // Create SolrDocument's from the ShardDoc's
>       boolean returnScores = (rb.getFieldFlags() & 
> SolrIndexSearcher.GET_SCORES) != 0;
>       for (ShardDoc sdoc : rb.resultIds.values()) {
>          SolrDocument doc = new SolrDocument();
>          doc.setField("id", sdoc.id);
>          if (returnScores && sdoc.score != null) {
>             doc.setField("score", sdoc.score);
>          }
>          rb._responseDocs.set(sdoc.positionInResponse, doc);
>       }
>    }
> }
> {code}
> Everything works fine, but ResponseBuilder variables: *resultIds* and 
> *_responseDocs*, and ShardDoc variables: *id*, *score*, and 
> *positionInResponse* currently all have package visibility.  I needed to 
> modify the core solr files to change their visibility to public so that I 
> could access them in the function above. Is there any chance that they could 
> be changed to public in a future version of Solr, or somehow make them 
> accessible outside the package?
> If people are interested, I could post the QueryComponent subclass and 
> database component that I wrote. But it gets a bit involved because the 
> QueryComponent subclass also handles parsing the query just at the main solr 
> server, and sending serialized parsed queries to the shards.  (Query parsing 
> in my environment is pretty cpu- and memory-intensive so I do it just at the 
> main server instead of the shards.)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to