You are here

query

query(search) performs a search on ScriptNode objects.

Parameters

search

The search object. The search object is defined as follows:

search
{
    query: string,          mandatory, in appropriate format and encoded for the given language
    store: string,          optional, defaults to 'workspace://SpacesStore'
    language: string,       optional, one of: lucene, xpath, jcr-xpath, fts-SkyVault - defaults to 'lucene'
    templates: [],          optional, Array of query language template objects (see below) - if supported by the language 
    sort: [],               optional, Array of sort column objects (see below) - if supported by the language
    page: object,           optional, paging information object (see below) - if supported by the language
    namespace: string,      optional, the default namespace for properties
    defaultField: string,   optional, the default field for query elements when not explicit in the query
    onerror: string         optional, result on error - one of: exception, no-results - defaults to 'exception'
}

sort
{
    column: string,         mandatory, sort column in appropriate format for the language
    ascending: boolean      optional, defaults to false
}

page
{
    maxItems: int,          optional, max number of items to return in result set
    skipCount: int          optional, number of items to skip over before returning results
}

template
{
    field: string,          mandatory, custom field name for the template
    template: string        mandatory, query template replacement for the template
}

              

Returns

Returns an array of ScriptNode objects representing the search results.

Example

The search object defines the search to be executed as is constructed in this way:

The search definition object can be as simple to use as:

var results = search.query({query: "TEXT:alfresco"});

Or as richly defined as:

var sort1 = 
{ 
  column: "@{http://www.alfresco.org/model/content/1.0}modified", 
  ascending: false 
}; 

var sort2 = 
{ 
  column: "@{http://www.alfresco.org/model/content/1.0}created", 
  ascending: false
}; 

var paging = 
{ 
  maxItems: 100, 
  skipCount: 0 
}; 

var def = 
{ 
  query: "cm:name:test*", 
  store: "workspace://SpacesStore", 
  language: "fts-alfresco", 
  sort: [sort1, sort2], 
  page: paging 
}; 

var results = search.query(def); 

This interface supports multi-column sorting and any of the SkyVault search languages. Future versions of the API will allow the search definition objects to be extended with additional properties while maintaining backward compatibility.