# DAHStartState

NOTE: This parameter is available only when you distribute the action by using a DAH running in non-mirror mode.

`DAHStartState` enables DAH to request only the documents it requires, which reduces the load on the child IDOL Content Components and the network.

The value of `DAHStartState` is passed sequentially. To see the number of results coming from each child IDOL Content Component, send a query with `DAHStartState` set to `-1`. This instructs the DAH to return a field that lists the number of results used from each child server.

For example, if a combinator DAH with three child servers receives a query that includes:

    MaxResults=10&DAHStartState=-1

and it generates 10 results by using the top two results from the first IDOL Content Component, the top three results from the second, and the top five results from the third, it returns the field `<dahstartstate>2,3,5</dahstartstate>`.

You can use `DAHStartState` with MaxResults and Start to retrieve results in pages, also known as batches. To retrieve results in batches, the following conditions must exist:

1. MaxResults must be greater than or equal to the Start value. For example:

       MaxResults=21

       Start=11

2. Start must be greater than the sum of the comma-separated values of `DAHStartState`. For example:

       DAHStartState=2,3,5

   (sum of these values=10)

For example:

    http://DAHHost:9060/Action=Query&Text=dinosaur&MaxResults=21&DAHStartState=2,3,5&Start=11

This query returns up to 11 documents that contain the word dinosaur. The query starts at the eleventh result and returns up to the twenty-first result, because MaxResults is set at 21. `DAHStartState` is set to `2,3,5` to indicate which place in the IDOL Content Component results list it must retrieve results for the query from.

If the results from this query consist of six results from the first IDOL Content Component, three results from the second, and two results from the third, the DAH adds the numbers to the numbers in the `<dahstartstate>` field that it returns to indicate how you must set `DAHStartState` in the next query to retrieve the next results batch (in this case, `DAHStartState=8,6,7`). The DAH also returns a `<dahendstate>` field to indicate the end state of the previous batch, which is the same as the start state for the current batch.

    http://DAHHost:9060/action=Query&Text=dinosaur&MaxResults=80&DAHStartState=8,6,7&Start=60

Assuming there are at least 80 results, you see only the last 21, because you requested to start from result 60, and therefore results 60 to 80 inclusive are returned. `DAHStartState=8,6,7` instructs the DAH to retrieve results from the IDOL Content Components beginning from result nine in the first IDOL Content Component, result seven in the second, and result eight from the third.

You can repeat this process until all eligible results have been retrieved.

You can also specify the precise range of results returned by each child server by using `DAHStartState` in combination with the DAHEndState parameter. The DAHEndState parameter defines what the end state of each of the child servers must be, such that the DAHEndState of one query is the `DAHStartState` of the next.

NOTE: Child servers that do not return any results in response to a `DAHStartState=-1` query are marked with a capital `X` in their `<dahstartstate>` field. DAH does not forward subsequent queries to these child servers.

For example, if a query with `DAHStartState=-1` returns `<dahstartstate>3,3,X</dahstartstate>`, the third child server does not return any results for this query. You can form the next query with `DAHStartState=3,3,X`, and DAH does not use the third child server in the query. If you use `DAHStartState=3,3,0` instead, DAH queries all three child servers.

NOTE: In non-mirror mode, DAH can map to mirrored child servers configured in distributor VDBs. DAH detects mirrored child servers at startup. The `DAHStartState` values returned for each set of mirrors are identical. To use the `DAHStartState` values returned by the DAH, ensure that the `DAHStartState` values of all servers in each set are identical, as returned by DAH. Only one value from each set is used in the calculation by DAH.

Actions: | Query Suggest SuggestOnText
Type: | Long
Default: | -1
Example: | `DAHStartState=10`
See Also: | DAHEndState MaxResults Start

_FT_HTML5_bannerTitle.htm