[
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.