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