Versions Compared

Key

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

...

As you can see, the response contains the Content Item ID, language and a field indicates whether it was successful. The JSON that comes thereafter is determined by the JSON presentation of the content item.

Response

...

Item Errors

If there is an error for a specific item, the result for that item will look like thisresembles the following:


Code Block
    "_searchRetrieve" : {
      "error" : "A message describing the error",
      "success" : false
    }

This rarely happens, since these items are usually not even returned by the search. Therefore this situation may be fully removed so that items with errors will never be returned at all.

Failed search request


Failed Search Request

A search might fail due to a malformed search query. In that case, the A search might fail, for example because of a malformed search query. In that case the response will contain an error message. Since an internal parse error is passed on, it might look complicated like thissimilar to the following:


Code Block
{
  "error" : "Error parsing search query: Unrecognized field \"idsxxx\" (class nl.gx.product.wmaheadlesssearchretrieveapi.api.data.SearchDefinition), not marked as ignorable (9 known properties: \"keywordCategories\", \"keywordsNot\", \"from\", \"text\", \"keywordsOr\", \"keywordsAnd\", \"ids\", \"languages\", \"to\"])\n at [Source: java.io.StringReader@4e4183f0; line: 3, column: 4] (through reference chain: nl.gx.product.wmaheadlesssearchretrieveapi.api.data.SearchAndRetrieveQuery[\"search\"]->nl.gx.product.wmaheadlesssearchretrieveapi.api.data.SearchDefinition[\"idsxxx\"])"
}


Still, if you look carefully it can tell you that a field name idsxxx In this example,  the  field name "idsxxx" was used in place of one of the valid ones listed, including idsincluding IDs.


Back to top

Settings

There is only one setting for the API in the Setup Tool ("/web/setup"), but it is an important one, since its checkbox must be checked to enable access to the API. The setting is called:

search_retrieve_enabled


...

Anchor
search-parameters
search-parameters
Search parameters

...

ParameterDescriptionExample (yaml)Example (json)
ids

Search for a content item using the item's content ID (Note: NOT the content item version ID). When you are looking for a Page the ID needs to be prefixed with a P, when looking for a media item the ID should be prefixed with an M. So for example for a page it would be P26111 and for a media item it would be 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 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"
]}
}
languagesBy adding this parameter to the request you can control in which language you want the results to be returned. This parameter supports both the short country code metatag value (ISO-639) as well as the full meta tag value (ISO-639 and ISO-3166 separated by an underscore "_"). Please note that when the full metatag value is provided, just the country code will be used, due to a limitation within the content index. This will be fixed in a later XperienCentral release. 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 for any text in the title or the body of the documents in the content index.
search:
  text: lorem
{
"search": {
"text": "lorem"
}
}
keywordsAndAdd 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"
]}
}
keywordsOrAdd 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"
]}
}
keywordsNotAdd a list of terms to the query. The results must not contain any of the listed terms.
search:
  keywordsNot:
  - term 1
  - term 2
{
"search": {
"keywordsNot": [
"term 1",
"term 2"
]}
}
keywordCategoriesAdd 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 index 1, so the from parameter should always be 1 or higher. Also note that this parameter is inclusive, meaning that when from is 3, the result set will include the third result and onwards. When 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. When 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 omitted a maximum number of 100 results will be returned, starting at the from parameter if provided, 1 otherwise.
search:
  to: 3
{
"search": {
"to": 5
}
}

...