Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
search:
  text: The text to search for in your content


This open query will return JSON containing the contents of all content items matching the text in all languages matching the text. For example:


Code Block
{
  "results" : [ {
    "_searchRetrieve" : {
      "contentItemID" : "M123",
      "language" : "nl_NL",
      "success" : true
    },
    ... JSON contents of the first result ...
  }, {
    "_searchRetrieve" : {
      "contentItemID" : "P12345",
      "language" : "en_US",
      "success" : true
    },
    ... JSON contents of the first result ...
  } ]
}

...

To retrieve results 11 to 20 of content items in English with the keywords , tags, labels and terms) "news" and "sports", the query would be:

...

To retrieve the Dutch content item versions for the content items with ID M1 and P26111, the query would be":


Code Block
search:
  ids: 
  - M1
  - P26111
  languages:
  - nl

...

  • Rate limitations to protect the server from Denial of Service attacks ("DDoS") and other security enhancements
  • The inclusion of referenced items in the response
  • Field filtering to only retrieve relevant fields in the response
  • Support for more types of search criteria including custom fields

If you have access to our the GX Software Jira issue tracking system, see thttps://connect.gxsoftware.com/jira/browse/XA-636 and its sub-tasks for all the technical details. The XperienCentral Headless add-on, which contains this functionality, can be upgraded without upgrading XperienCentral.

...

Both HTTPS and HTTP are accepted as well as other context paths. To construct a search query in JSON format, use a URL that ends in /json. For example:


Code Block
https://yoursite.com/web/searchretrieve/v1/json

...

The examples here are written in YAML, but JSON is also supported. In general, YAML is easier to read and write and can be written quickly which makes it useful for doing search queries by hand. JSON is the more logical choice when serializing an object for the search query in your code or if you are more comfortable using it.

This The following YAML


Code Block
search:
  ids: 
  - M123
  - P12345
  languages:
  - nl

...

There are various different IDs used in XperienCentral for different purposes. Content Item IDs are used to request specific content items via this API, often in combination with a specific language . That that will return the current active version in that language. Version IDs are never used in the API. A content item is either a page or a media item. Since the numerical ID used for pages and media items might overlap, this internal ID is prefixed by either a "P" (for a page) or an "M" (for media items) in this API. If the ID of a content item is already known from a previous search request, it can easily be retrieved using the ID's parameter as shown in the example above.

...

Query results can be limited to either one or a number of explicit languages using the languages parameterthe languages parameter. See the Search Parameters below for details on the format. A media item is rendered via its "display-on" page. The language of the media item determines the language version of the display-on page, therefore you must ensure that a display-on page is available for each supported language.

...

A search might fail due to a malformed search query. In that case, the response will contain an error message. Since an internal parse error is passed on, it might looks similar to the following:

...

Anchor
search-parameters
search-parameters
Search Parameters

The list below following are the currently supported parameters for querying the Search & Retrieve API. This list will be expanded in future releases.

...

ParameterDescriptionYAML ExampleJSON Example
ids

Search for a content item using the item's content ID. Note that this is not the content item version ID. When searching for a page, the ID must be prefixed with a "P" and when searching for a media item, the ID should be prefixed with an "M". For example, searching for a page would with the content ID 26111, you would use P26111 and searching for a media with the content ID of 1, you would use M1.

This parameter can be used together with the languages parameter in order to retrieve the current or active version for those languages. When no languages are specified, the current version for all languages defined in XperienCentral is are returned.

The ids parameter can only be used in combination with the languages parameter. When other parameters are provided, they will be ignored.

search: 
ids:
  - P26111
  - M1
{
"search": {
"ids": [
"P26111",
"M1"
]}
}
languagesThis parameter specifiesthe specifies the language you want the results to be returned in. This parameter supports both the short country code metatag value (ISO-639) as well as the full meta tag metatag value (ISO-639 and ISO-3166 separated by an underscore "_"). Please note that when the full metatag value is provided, only the country code will be used due to a limitation within the content index. The languages parameter can be used in combination with both ID-based queries and parameterized queries. If this parameter is omitted, the active version for each available language will be returned. If there is no active version available, no version will be returned.
search: 
  languages:
  - en_US
  - nl
{
"search": {
"languages": [
"en_US",
"nl"
]}
}
textThis field can be used to search parameter searches for any text in the title or the body of the documents in the content index.
search:
  text: lorem
{
"search": {
"text": "lorem"
}
}
keywordsAndAdds a list of terms to the query. The results have to contain all the listed terms.
search:  
keywordsAnd:
  - term 1
  - term 2
{
"search": {
"keywordsAnd": [
"term 1",
"term 2"
]}
}
keywordsOrAdds a list of terms to the query. The results have to contain one or more of the terms specified.
search:  
keywordsOr:
  - term 1
  - term 2
{
"search": {
"keywordsOr": [
"term 1",
"term 2"
]}
}
keywordsNotAdds a list of terms to the query. The results must can not contain any of the listed terms.
search:
  keywordsNot:
  - term 1
  - term 2
{
"search": {
"keywordsNot": [
"term 1",
"term 2"
]}
}
keywordCategoriesAdds a list of term categories to the query. The result has to contain at least one term that is in one of the provided categories.
search:
  keywordCategories:
  - term category 1
  - term category 2
{
"search": {
"keywordCategories": [
"term category 1",
"term category 2"
]}
}
fromAllows the selection of a subset of the results starting at the value of this parameter. The first result in a result set has an index of 1, therefore the from parameter should always be 1 or higher. Also note that this parameter is inclusive, meaning that if from is 3, for example, the result set will include the third result and higher. When from is omitted, the value 1 will be used.
search:
  from: 3
{
"search": {
"from": 3
}
}
toAllows the selection of a subset of the results ending at the value of this parameter. Like the from parameter, this parameter is inclusive, meaning that when to is set to 1, only the first result will be returned. For example, if from is set to 3 and to is set to 5, the results 3, 4 and 5 will be returned. The minimum value for this parameter is 1. When to is omitted, a maximum number of 100 results will be returned starting at the from parameter (if specified), otherwise starting from 1.
search:
  to: 3
{
"search": {
"to": 5
}
}

...