[ https://issues.apache.org/jira/browse/SOLR-303?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yonik Seeley updated SOLR-303: ------------------------------ Attachment: distributed.patch OK, here is a *draft* that mostly works for searches and highlighting. There are stages in the request: {code} public static int STAGE_START = 0; public static int STAGE_PARSE_QUERY = 1000; public static int STAGE_EXECUTE_QUERY = 2000; public static int STAGE_GET_FIELDS = 3000; public static int STAGE_DONE = Integer.MAX_VALUE; {code} When a component wants to send a request, it adds it to "outgoing" queue. Other components can inspect and modify these shard requests. All components get a callback when the shard response is received. All shard responses purposes (to aid in both correlation and inspection/modification by other components). This is what a ShardRequest looks like: {code} public class ShardRequest { public final static String[] ALL_SHARDS = null; public final static int PURPOSE_PRIVATE = 0x01; public final static int PURPOSE_GET_TERM_DFS = 0x02; public final static int PURPOSE_GET_TOP_IDS = 0x04; public final static int PURPOSE_REFINE_TOP_IDS = 0x08; public final static int PURPOSE_GET_FACETS = 0x10; public final static int PURPOSE_REFINE_FACETS = 0x20; public final static int PURPOSE_GET_FIELDS = 0x40; public final static int PURPOSE_GET_HIGHLIGHTS = 0x80; public int purpose; // the purpose of this request public String[] shards; // the shards this request should be sent to // TODO: how to request a specific shard address? public ModifiableSolrParams params; public List<ShardResponse> responses = new ArrayList<ShardResponse>(); } {code} Components are responsible for themselves... the highlighting component is responsible for turning itself on/off at the appropriate time... the query component has no knowledge of the highlight component. This will make it so that custom components can be developed that can work in a distributed environment w/o explicit support for that component baked into the other components. > Distributed Search over HTTP > ---------------------------- > > Key: SOLR-303 > URL: https://issues.apache.org/jira/browse/SOLR-303 > Project: Solr > Issue Type: New Feature > Components: search > Reporter: Sharad Agarwal > Assignee: Yonik Seeley > Attachments: distributed.patch, fedsearch.patch, fedsearch.patch, > fedsearch.patch, fedsearch.patch, fedsearch.patch, fedsearch.patch, > fedsearch.patch, fedsearch.stu.patch, fedsearch.stu.patch > > > Searching over multiple shards and aggregating results. > Motivated by http://wiki.apache.org/solr/DistributedSearch -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.