Skip to main content

 Web service API

How to use PageSeeder's Web service API

project help search

/projects/{group}/help/search [GET]


Search the default help index and any [project]-help groups in this or ancestor projects and automatically add the following filter ({group} can be a group or project).


Please note, the API of this class is not stable yet. Some parameter names may change, the XML output may also change slightly in future releases.

Select the index

The current implementation of PageSeeder produces one Lucene index per group. The index is selected by the group on the request. If there is a project on the request all the groups under the project that the member has access to will be selected. For a project the groups parameter can be used to narrow the groups selected. It must be a comma separated list of group names.

The query

The query can be of two types: predicate or question. The parameter type specifies that type.

The parameters used for a predicate query are predicate and defaultfield. The predicate specified ust be parseable by the Lucene classic parser. See for more info.

The parameters for a question query are question and questionfields which will form the main predicate for the search.

The question is typically one or multiple terms, separated with spaces, and may also come directly from the user.

Each term in the question will be converted into Lucene Term s for each field specified in the fields parameters. The fields parameter would typically include the title ( pstitle) and content ( pscontent ) for a full text search. The fields should be indexed by Lucene; and it is preferable that they are analyzed. In order to generate extracts, they must be stored.

For a question type, the Lucene query produced will be the equivalent of:

+(field1:term1 field1:term2 field2:term1 field2:term2 ...)

Using filters

The filters parameter is a comma separated list of Lucene index terms including the field name: [field]:[term] .

For example, the filters parameter value psauthor:john,pspriority:high will only display results by author 'john' and have priority 'high'.

When filtering, the Lucene query produced will be the equivalent of:

+facet1:value1 +facet2:value2 ...)


The ranges parameter can be used to filter using a set of ranges. It is a comma separated list of range searches with format:


where [ or ] means include limit value and { or } means exclude limit value. For example:

ranges=psproperty-expires:[2015-03-20;2016-01-01],psproperty-title:[A;C} ranges=psxrefcount:{50;],psreversexrefcount:[;10]

Organising search results

Results can be paged and ordered.

The page and pagesize controls which part of the search results will be returned. They must be positive integer values and will default to 1 and 100 respectively.

The sortfields parameter is a comma separated list of fields to sort the results; the results are sorted by relevance if no sortfields parameter is specified.


NameDescriptionRequiredTypeDefault value
document-typeReturn results with this value in psmetadata-document_type OR match pageidnostring
fieldsizeThe max length allowed in a result field (max 10000)nointeger1000
filtersA comma-separated list of field:term pairs to use as filtersnostrings
pageThe current page to viewnointeger1
pageidReturn results with this value in psmetadata-page_id OR match document-typenostring
pagesizeHow many results does a page containnointeger100
questionThe question to search fornostring
questionfieldsA comma-separated list of fields to search the question innostringspstitle,pscontent
rangesA comma-separated list of range searchesnostrings
sortfieldsA comma-separated list of fields to sort the resultsnostrings
suggestsizeThe max number of suggestions to load (only for question query)nointeger20


The user must be logged in and results will only be returned from projects where they are a member of a group.


The XML response is:

  <query> ... </query>
  <suggestions> ... </suggestions>
  <facets> ... </facets>
  <results>  ... </results>

For details see Service: /groups/{group}/search [GET].

Error Handling

0x1501 If there is an invalid group specified
0x1502 If there are no indexes selected
0x1503 If the predicate is not valid
0x1504 If a sort field cannot be used for sorting
0x1506 If a numeric field is specified as a facet
0x6502 Missing catalog, please re-index group
Created on , last edited on