The standard Activity Stream API provides a mechanism for retrieving a stream of events for any given user, filtered by a number of specific criteria. Although this is generally sufficient for the display of most streams of interest, there are occasions when a more complex filter or set of filters are required. Activity Stream Search provides not just this filtering capability but also text search of the Activity Stream along with the identification (and filtering by) topics of interest present in the submitted activities.
Activity Stream Search provides support for a few additional parameters on top of the standard Activity Stream API.
The response format is the same as the one for standard Activity Stream API requests. There is also an additional response element for facet results.
Note: requests that do not require the search and filtering capabilities provided by Activity Stream Search can be served without using the search index. However, the relation between events and followed topic is kept only in the index, thus one's personal stream will include events related to followed topics only when served using the index. For this, preferSearchIndex=true must be specified (see parameter specification below).
Also note that the following views are not supported by Activity Stream Search (i.e, Activity Stream Search parameters cannot be added to them):
Saved events (/@me/@saved/@all)
Action Required (/@me/@actions/@all)
Responses to Activity Stream Search requests may contain two additional properties on the "connections" object of the feed:
"label": "Cameron Test Community Cars and Racing",
"label": "Earth Day Community",
"label": "Vincent Burckhardt",
"label": "David A. Brooks",
snapshot - used for pagination, see details below
facets: holds facet results. This is a JSON object, with a property for each requested facet type (facet types for which there was no results will be omitted).
The result for each facet type is a JSON array. Each object in the array has the following properties:
score: for the people and communities facet, the score is the number of events (in the result set) corresponding to the facet value. For Hot Topics, the score represents the relevance/quality of the facet value. A larger score means that this facet is considered to represent the results well
id: for the people and communities facets, this is the person or community ID. For Hot Topics, this is the Hot Topics itself
label: for the people and communities facets, this is the person or community name. For Hot Topics, this is the Hot Topics itself
The array is sorted by score in descending order
Paging through Activity Stream results is done by using the updatedBefore parameter. When requesting page N+1 of the results, the value to be passed as the updatedBefore parameter is the "published" date of the last entry of page N.
This is an exclusive bound, i.e., updatedBefore=X means that all results will have published < X (not published <= X).
In roll-up mode (i.e., rollup=true), the caller must also provide the snapshot parameter when providing the updatedBefore parameter. When requesting page N+1, the caller must provide the snapshot value that was returned on page N (as the "snapshot" property of the "connections" object).
Note that updatedBefore is applied to threads (after roll-up), as opposed to dateFilter which is applied to individual events.
Also note that due to performance considerations, the pagination mechanism is limited to 10 pages. When requesting for the 11th page (i.e., the 10th consecutive page with the same snapshot), it could be that not all available results will be returned (but all returned results are guaranteed to satisfy the updatedBefore constraint).