Response

Overview

The response currently comes in two formats:

  • JSON
  • XML

Both response formats contain the same major fields, which include:

  • sessionId - the session ID for the current request
  • elapsedQueryTime - the time spent waiting for the query to return from the search engine
  • queryTime - the time the search engine spent processing the query
  • totalRequestTime - the total time taken to process the request, including time to format the results
  • pageCount - the total number of available pages for the current query
  • didYouMeanSuggestions - suggestions for spelling corrections including the term being corrected and its suggested replacement
  • recommendationLists - recommendations for databases and best bets that arebased on the user's input
  • documents - the meta documents themselves
  • errors - any server, client or end-user errors
  • facetFields - counts for any facet fields requested
  • query - a parsed format of the query submitted after commands are applied
  • rangeFacetFields - counts for any range facet fields requested

For more specific information on each field, see didYouMeanSuggestions, recommendationLists, documents, errors, facetFields, query and rangeFacetFields.

XML Format

In the XML format, the root element is response. All simple types are stored as attributes, and only complex types are stored as nested elements. Lists of elements are stored under a nested element unless the containing element only has one list. For example, the query element contains nested elements for textQueries, searchTerms, textFilters, rangeFilters, facetValueFilters, facetValueGroupFilters, facetFields, rangeFacetFields, sort and params, because the query element contains more than one list. The rangeFacetField, on the other hand, does not have a nested element for ranges, because ranges is the only list on rangeFacetField. Each range element is stored directly on the rangeFacetField.

Example - An XML result snippet

<query
 queryString="s.rff=PublicationDate%2C1981%3A1990%2C1991%3A2000&amp;s.q=tropics&amp;s.dym=true"
 isDidYouMeanEnabled="true">
  <textQueries>
    <textQuery
     textQuery="tropics"
     removeCommand="removeTextQuery(tropics)"/>
  </textQueries>
  <didYouMeanSuggestions/>
  <recommendationLists/>
  <searchTerms/>
  <textFilters/>
  <rangeFilters/>
  <facetValueFilters/>
  <facetValueGroupFilters/>
  <facetFields/>
  <rangeFacetFields>
    <rangeFacetField
     fieldName="PublicationDate"
     removeCommand="removeFacetField(PublicationDate)">
      <range minValue="1981" maxValue="1990"/>
      <range minValue="1991" maxValue="2000"/>
    </rangeFacetField>
  </rangeFacetFields>
  <sort/>
  <params/>
</query>

JSON Format

In the JSON format, the object itself is the root. Extra nesting is avoided where possible. Objects inside arrays do not have an extra level of wrapping containing the object name. Numbers and Booleans are stored as their appropriate JavaScript types.

Example - A JSON result snippet

"rangeFacetFields":[
  {
    "fieldName":"PublicationDate_dt",
    "displayName":"PublicationDate",
    "removeCommand":"removeFacetField(PublicationDate)",
    "counts":[
      {
        "range":{
          "minValue":"1981",
          "maxValue":"1990"
        },
        "count":4570,
        "isApplied":false,
        "applyCommand":"addRangeFilter(PublicationDate,1981:1990)"
      },
      {
        "range":{
          "minValue":"1991",
          "maxValue":"2000"
        },
        "count":3817,
        "isApplied":false,
        "applyCommand":"addRangeFilter(PublicationDate,1991:2000)"
      }
    ]
  }
]

Did You Mean Suggestions Response Field

The didYouMeanSuggestions field will be populated if the query is eligible for did you mean suggestions, and the primary query contains terms which drop the response document count below a certain threshold, and there are likely alternatives to the limiting terms. Each suggestion contains the following three fields:

  • originalQuery - the query that would be replaced by applying the did you mean suggestion
  • suggestedQuery - the query that would replace the originalQuery if the suggestion was applied
  • newSearchCommand - a command that can be appended to the existing query string to apply the did you mean suggestion.

Example - A didYouMeanSuggestions element in XML format

<didYouMeanSuggestions>
  <suggestion
   originalQuery="franknestein"
   suggestedQuery="frankenstein"
   newSearchCommand="setTextQuery(frankenstein)"/>
</didYouMeanSuggestions>

Example - A didYouMeanSuggestions object in JSON format

"didYouMeanSuggestions":[
  {
    "originalQuery":"franknestein",
    "suggestedQuery":"frankenstein",
    "newSearchCommand":"setTextQuery(frankenstein)"
  }
]

Documents Response Field

The documents field will be populated if there are any meta documents to return. Each document has five fields:

  • hasFullText - boolean which indicates if a given document has full text available
  • inHoldings - boolean which indicates if a given document is in the current library's holdings
  • availabilityToken - optional - a string which identifies a given document's lookup key for use with the Availability API
  • openUrl - an OpenURL describing a given document
  • fields - the fields on the document. In XML format this is the only list on the document object. Therefore, the field elements are all direct children of the document

Each field in the fields list has a name and a list of values. The values may be either plain strings or a custom micro format. The micro formats are parsed in the response so even though micro formats are XML. They will be returned as JSON when response type is JSON. Some documents will have thumbnails available. Thumbnail URLs are returned in the thumbnail_s, thumbnail_m and thumbnail_l fields. Thumbnails may be referenced directly in the rendered page, and do not require another API call. If a request is made for a thumbnail that no longer exists, a redirect will be returned to a 1x1px transparent gif.

Example - A documents element in XML format

<documents>
  <document
     hasFullText="false"
     isFullTextHit="false"
     inHoldings="false">
    <field name="Language">
      <value>English</value>
    </field>
    <field name="PublicationPlace">
      <value>Chicago, Ill</value>
    </field>
    <field name="Score">
      <value>1.0</value>
    </field>
    <field name="PageCount">
      <value>1</value>
    </field>
    <field name="Copyright">
      <value>Copyright Chicago Tribune Co. Aug 3, 1980</value>
    </field>
    <field name="IsPeerReviewed">
      <value>false</value>
    </field>
    <field name="PublicationDate_xml">
      <datetime text="19800803" month="08" year="1980" day="03"/>
    </field>
    <field name="PublicationCentury">
      <value>1900</value>
    </field>
    <field name="PublicationDate">
      <value>19800803</value>
    </field>
    <field name="Copyright_xml">
      <copyright notice="Copyright Chicago Tribune Co. Aug 3, 1980"/>
    </field>
    <field name="Snippet">
      <value>RED CEDAR hand-split shakes and shingles offer many design options for an interior wallcovering that has a texture that won&apos;t quit.</value>
    </field>
    <field name="NewspaperSection">
      <value>S</value>
    </field>
    <field name="IsScholarly">
      <value>false</value>
    </field>
    <field name="ID">
      <value>FETCH-proquest_dll_6216115920</value>
    </field>
    <field name="PublicationTitle">
      <value>Chicago Tribune (1963-Current file)</value>
    </field>
    <field name="PCID">
      <value>6756202</value>
    </field>
    <field name="Genre">
      <value>article</value>
    </field>
    <field name="PublicationPlace_xml">
      <location name="Chicago, Ill"/>
    </field>
    <field name="PublicationDecade">
      <value>1980</value>
    </field>
    <field name="PQID">
      <value>621611592</value>
    </field>
    <field name="Abstract">
      <value>RED CEDAR hand-split shakes and shingles offer many design options for an interior wallcovering that has a texture that won&apos;t quit.</value>
    </field>
    <field name="ContentType">
      <value>Newspaper Article</value>
    </field>
    <field name="Title">
      <value>Outdoor coverings make a move inside</value>
    </field>
    <field name="ISSN">
      <value>1085-6706</value>
    </field>
    <field name="SSID">
      <value>ssj0016743</value>
    </field>
    <field name="StartPage">
      <value>S_A6</value>
    </field>
    <field name="link">
<value>http://demo.summon.serialssolutions.com/link/eJxtkd9q2zAUxp11G2u3vcXSG6NEkv9UMpiSJQR6UUppS8tujCYfJ0ptKZXkNM_RJ67iwGDQCyF9P33nnA8pin7RXDSEJimSBEuUUpIiJlKKJGdpSrIaMs5G0dndLFs8sutb_vRp9Lb2fltMp05k9SvrXvh-4kBYuQ6bVaJ1zrS9V0a7iTTdpfT7age2_JPwCWOIYpyeHxhoWSrdmHEyM40a02UA4fxwv0Ts3Da2UvVwXzhVT13fdUZ_OCB4fbUTbdV0_lgQ2k2DKJ5hV3R-X2xMb7VoD8bJCrSFUsOrG6TwyrdQ3vS-NsbG0oSkSq9c3IlniEXcBRArHSLA4N8c_fO1kmJl4nur_vYa4jFlhOcJmvfWgvZxo1oYUz6U1MJDSTjDCDOEk4Ep53RJMMtQfoHzAbmtWEF5V82OEvYeDqEXv68WpQ6vI_7HRgaeU5ITknF6En2m4Re_RGfObTAm-UWafI1O_034Hn3bWvPSg_M_ohH5GdY7LE6hqQ</value>
    </field>
    <isSpotlightParent>false</isSpotlightParent>
  </document>
</documents>

Example - A documents object in JSON format

[documents] => Array
        (
            [0] => Array
                (
                    [hasFullText] =>
                    [isFullTextHit] =>
                    [inHoldings] =>
                    [Language] => Array
                        (
                            [0] => English
                        )
                    [PublicationPlace] => Array
                        (
                            [0] => Boston, Mass
                        )
                    [Score] => Array
                        (
                            [0] => 1.0
                        )
                    [PageCount] => Array
                        (
                            [0] => 1
                        )
                    [Copyright] => Array
                        (
                            [0] => Copyright New York Times Company Jul 7, 1899
                        )
                    [IsPeerReviewed] => Array
                        (
                            [0] => false
                        )
                    [PublicationDate_xml] => Array
                        (
                            [0] => Array
                                (
                                    [text] => 18990707
                                    [month] => 07
                                    [year] => 1899
                                    [day] => 07
                                )
                        )
                    [PublicationCentury] => Array
                        (
                            [0] => 1800
                        )
                    [PublicationDate] => Array
                        (
                            [0] => 18990707
                        )
                    [Copyright_xml] => Array
                        (
                            [0] => Array
                                (
                                    [notice] => Copyright New York Times Company Jul 7, 1899
                                )
                        )
                    [Snippet] => Array
                        (
                            [0] => CLEVELAND, O. July 6--That the Standard oil company, as an Ohio corporation, will soon cease to exist is shown by the fact that the immense refinery plant, the ...
                        )
                    [GeographicLocations] => Array
                        (
                            [0] => CLEVELAND, O. July 6
                        )
                    [IsScholarly] => Array
                        (
                            [0] => false
                        )
                    [ID] => Array
                        (
                            [0] => FETCH-proquest_dll_5479701420
                        )
                    [PublicationTitle] => Array
                        (
                            [0] => Boston daily globe (Boston, Mass. : 1872)
                        )
                    [PCID] => Array
                        (
                            [0] => 6477782
                        )
                    [Genre] => Array
                        (
                            [0] => article
                        )
                    [PublicationPlace_xml] => Array
                        (
                            [0] => Array
                                (
                                    [name] => Boston, Mass
                                )
                        )
                    [PublicationDecade] => Array
                        (
                            [0] => 1890
                        )
                    [PQID] => Array
                        (
                            [0] => 547970142
                        )
                    [Abstract] => Array
                        (
                            [0] => CLEVELAND, O. July 6--That the Standard oil company, as an Ohio corporation, will soon cease to exist is shown by the fact that the immense refinery plant, the second largest in the world, strung along in the valley of...
                        )
                    [ContentType] => Array
                        (
                            [0] => Newspaper Article
                        )
                    [Title] => Array
                        (
                            [0] => LEAVING THE STATE OF OHIO
                        )
                    [SSID] => Array
                        (
                            [0] => ssj0043126
                        )
                    [StartPage] => Array
                        (
                            [0] => 7
                        )
                    [Subtitle] => Array
                        (
                            [0] => Standard Oil Company Abandoning Its Cleveland Plant--Official, However, Makes an Implied Denial
                        )
                    [link] => Array
                        (
                            [0] => http://demo.summon.serialssolutions.com/link/eJxtkG1vgjAQx3EPyeK2bzF804C0ILQkZNGp02TOLLKH7I2pUBQHVGlRl335VXy1ZMk1d_e7_13b07Q7D-OFS1zX8JANDceGkUFo4hh4YbkWgdSNGGxozVm303_Hkxfycdb4WUm58dttQTvxHudbcjAFo2W0Uq5MaSYEzyqZ8kKYEc_vI3mY71gZfNrExNhAluW0jowVUZAWCdftLk9SHQ0VUPFrODRwq0zKeRrXdV-kcVtUec6Lfy9QWjnf0Wye5PLUoMa1VeJ_sZ2fy4O_5lVZ0OwoNJesKFlQsL2oUypTmbHgadB9Gz8_gnA0ALOwGw7AdAimo_G0Fq1Poh4Xkhcgpmn2DZYZXzCgI3yiOnoAEyqECdQXAMQe0hGpm2MqWQAxIYblKauZ2NAlC04xO0h2fF2_N-4Has6Q_sU8UrzjeMSzoIPOtQsEkX2pNYVYq03aELnX2tWm5NuKCXmjNeCtOr98FJTO
                        )
                )
        )
)

Errors Response Field

The errors field will be populated if there are any server, client or end user errors. Each error has two fields:

  • message - string which describes the error
  • suggestion - optional - a suggestion is made up of three fields: originalText, suggestedText and applySuggestionCommand

Example - An errors element in XML format

<errors>
  <error
   message="Attempting to search within field which does not exist: recidivism">
    <suggestion
     originalText="Probability models of recidivism:an exploration"
     suggestedText="Probability models of recidivism\:an exploration"
     applySuggestionCommand="setTextQuery(Probability models of recidivism\\:an exploration)">
  </error>
</errors>

Example - An errors object in JSON format

"errors":[
  {
    "message":"Attempting to search within field which does not exist: recidivism",
    "suggestion":{
      "originalText":"Probability models of recidivism:an exploration",
      "suggestedText":"Probability models of recidivism\\:an exploration",
      "applySuggestionCommand":"setTextQuery(Probability models of recidivism\\:an exploration)"
    }
  }
]

Facet Fields Response Field

The facetFields field will be populated if if any facet field counts were requested in the query. Each facetField contains the following 9 fields:

  • fieldName - the name of the field being faceted on
  • displayName - the human friendly name of the field being faceted on
  • combineMode - the mode with which the value filters were applied for the counts
  • pageNumber - the current page number for the counts
  • pageSize - the current page size for the counts
  • hasLimitingValue - whether or not this facet field has any potentially limiting value filters
  • hasAppliedValue - whether or not this facet field has any currently applied value filters
  • removeCommand - command to remove this facet field from the list of requested facet fields
  • counts - list of the facetCount items for the individual facet values

Each facetCount contains the following 9 potential fields:

  • value - the text value for this count
  • count - the document count
  • isApplied - whether or not there is a facet value filter already applied for this facet value
  • isNegated - whether or not the associated facet value filter is currently negated
  • isFurtherLimiting - whether or not this facet value filter could further refine the result set
  • applyCommand - available if not isApplied - the command to apply a facet value filter for this facet value
  • applyNegatedCommand - available if not isApplied - the command to apply a negative facet value filter for this facet value
  • removeCommand - available if isApplied - the command to remove the facet value filter for this facet value
  • negateCommand - available if isApplied - the command to negate the facet value filter for this facet value

The counts field is the only list on facetField, so there is no nested element for it.

Example - A facetFields element in XML format

<facetFields>
  <facetField
   fieldName="ContentType_sfacet"
   displayName="ContentType"
   combineMode="or"
   pageNumber="1"
   pageSize="10"
   hasLimitingValue="true"
   hasAppliedValue="true"
   removeCommand="removeFacetField(ContentType)"
   listValuesCommand="listFacetValues(ContentType,or)"
   removeValueFiltersCommand="removeFacetValueFilter(ContentType)">
    <facetCount
     value="Journal"
     count="74926"
     isApplied="true"
     isNegated="false"
     isFurtherLimiting="true"
     removeCommand="removeFacetValueFilter(ContentType,Journal)"
     negateCommand="negateFacetValueFilter(ContentType,Journal)"/>
    <facetCount
     value="Book"
     count="1984"
     isApplied="true"
     isNegated="false"
     isFurtherLimiting="true"
     removeCommand="removeFacetValueFilter(ContentType,Book)"
     negateCommand="negateFacetValueFilter(ContentType,Book)"/>
    <facetCount
     value="Newspaper"
     count="1012"
     isApplied="false"
     isNegated="false"
     isFurtherLimiting="true"
     applyCommand="addFacetValueFilter(ContentType,Newspaper,false)"
     applyNegatedCommand="addFacetValueFilter(ContentType,Newspaper,true)"/>
  </facetField>
</facetFields>

Example - A facetFields object in JSON format

"facetFields":[
  {
    "fieldName":"ContentType_sfacet",
    "displayName":"ContentType",
    "combineMode":"or",
    "pageNumber":1,
    "pageSize":10,
    "hasLimitingValue":true,
    "hasAppliedValue":true,
    "removeCommand":"removeFacetField(ContentType)",
    "listValuesCommand":"listFacetValues(ContentType,or)",
    "removeValueFiltersCommand":"removeFacetValueFilter(ContentType)",
    "counts":[
      {
        "value":"Journal",
        "count":115206,
        "isApplied":true,
        "isNegated":false,
        "isFurtherLimiting":true,
        "removeCommand":"removeFacetValueFilter(ContentType,Journal)",
        "negateCommand":"negateFacetValueFilter(ContentType,Journal)"
      },
      {
        "value":"Book",
        "count":3608,
        "isApplied":true,
        "isNegated":false,
        "isFurtherLimiting":true,
        "removeCommand":"removeFacetValueFilter(ContentType,Book)",
        "negateCommand":"negateFacetValueFilter(ContentType,Book)"
      },
      {
        "value":"Newspaper",
        "count":2384,
        "isApplied":false,
        "isNegated":false,
        "isFurtherLimiting":true,
        "applyCommand":"addFacetValueFilter(ContentType,Newspaper,false)",
        "applyNegatedCommand":"addFacetValueFilter(ContentType,Newspaper,true)"
      }
    ]
  }
]

Query Response Field

The query field will be populated for all queries except when the HTTP status is 400 or 500. The query contains the following 18 fields:

  • queryString - the current query string, after commands were applied
  • pageNumber - the current page number
  • pageSize - the current page sizes
  • isHighlightingEnabled - whether or not highlighting is currently turned on
  • highlightStartDelimiter - the current highlight start delimiter
  • highlightEndDelimiter - the current highlight end delimiter
  • isDidYouMeanEnabled - whether or not did you mean is currently turned on
  • isDebugEnabled - whether or not debug is currently turned on
  • isHoldingsOnlyEnabled - whether or not holdings only mode is currently turned on
  • textQueries - list of the textQuery items in the current query
  • textFilters - list of the textFilter items in the current query
  • rangeFilters - list of the rangeFilter items in the current query
  • facetValueFilters - list of the facetValueFilter items in the current query
  • facetValueGroupFilters - list of the facetValueGroupFilter items in the current query
  • facetFields - list of the facetField items in the current query
  • rangeFacetFields - list of the rangeFacetField items in the current query
  • sort - the sort order of the current query

Example - A query element in XML format

<query
 queryString="s.fvgf%3A1=ContentType%2Cor%2CBook%2CJournal+Article&amp;s.hs=%3Ch%3E&amp;s.ho=true&amp;s.fq=Title%3Arain&amp;s.sort=PublicationDate%3Adesc&amp;s.rff=PublicationDate%2C1990%3A2000&amp;s.ps=10&amp;s.debug=false&amp;s.dym=true&amp;s.pn=1&amp;s.rf=PublicationDate%2C1990%3A2000&amp;s.ff=ContentType%2Cor%2C1%2C1&amp;s.hl=true&amp;s.q=forests&amp;s.he=%3C%2Fh%3E&amp;s.fvf=ContentType%2CJournal+Article%2Cfalse"
 pageNumber="1"
 pageSize="10"
 isHighlightingEnabled="true"
 highlightStartDelimiter="&lt;h&gt;"
 highlightEndDelimiter="&lt;/h&gt;"
 isDidYouMeanEnabled="true"
 isDebugEnabled="false"
 isHoldingsOnlyEnabled="true">
  <textQueries>
    <textQuery
     textQuery="forests"
     removeCommand="removeTextQuery(forests)"/>
  </textQueries>
  <textFilters>
    <textFilter
     textFilter="Title:rain"
     removeCommand="removeTextFilter(Title:rain)"/>
  </textFilters>
  <rangeFilters>
    <rangeFilter
     fieldName="PublicationDate"
     removeCommand="removeRangeFilter(PublicationDate,1990:2000)">
      <range
       minValue="1990"
       maxValue="2000"/>
    </rangeFilter>
  </rangeFilters>
  <facetValueFilters>
    <facetValueFilter
     fieldName="ContentType"
     value="Journal Article"
     isNegated="false"
     removeCommand="removeFacetValueFilter(ContentType,Journal Article)"
     negateCommand="negateFacetValueFilter(ContentType,Journal Article)"/>
  </facetValueFilters>
  <facetValueGroupFilters>
    <facetValueGroupFilter
     tag="1"
     fieldName="ContentType"
     combineMode="or"
     removeCommand="removeFacetValueGroupFilter(1)">
      <facetValue
       value="Book"
       removeCommand="removeFacetValueGroupFilter(1,Book)"/>
      <facetValue
       value="Journal Article"
       removeCommand="removeFacetValueGroupFilter(1,Journal Article)"/>
    </facetValueGroupFilter>
  </facetValueGroupFilters>
  <facetFields>
    <facetField
     fieldName="ContentType"
     combineMode="or"
     pageNumber="1"
     pageSize="1"
     removeCommand="removeFacetField(ContentType)"/>
  </facetFields>
  <rangeFacetFields>
    <rangeFacetField
     fieldName="PublicationDate"
     removeCommand="removeFacetField(PublicationDate)">
      <range
       minValue="1990"
       maxValue="2000"/>
    </rangeFacetField>
  </rangeFacetFields>
  <sort>
    <sortField
     fieldName="PublicationDate"
     sortOrder="desc"/>
  </sort>
</query>

Example - A query object in JSON format

"query":{
  "queryString":"s.fvgf%3A1=ContentType%2Cor%2CBook%2CJournal+Article&s.hs=%3Ch%3E&s.ho=true&s.fq=Title%3Arain&s.sort=PublicationDate%3Adesc&s.rff=PublicationDate%2C1990%3A2000&s.ps=10&s.debug=false&s.dym=true&s.pn=1&s.rf=PublicationDate%2C1990%3A2000&s.ff=ContentType%2Cor%2C1%2C1&s.hl=true&s.q=forests&s.he=%3C%2Fh%3E&s.fvf=ContentType%2CJournal+Article%2Cfalse",
  "pageNumber":1,
  "pageSize":10,
  "isHighlightingEnabled":true,
  "highlightStartDelimiter":"<h>",
  "highlightEndDelimiter":"</h>",
  "isDidYouMeanEnabled":true,
  "isDebugEnabled":false,
  "isHoldingsOnlyEnabled":true,
  "textQueries":[
    {
      "textQuery":"forests",
      "removeCommand":"removeTextQuery(forests)"
    }
  ],
  "textFilters":[
    {
      "textFilter":"Title:rain",
      "removeCommand":"removeTextFilter(Title:rain)"
    }
  ],
  "rangeFilters":[
    {
      "fieldName":"PublicationDate",
      "range":{
        "minValue":"1990",
        "maxValue":"2000"
      },
      "removeCommand":"removeRangeFilter(PublicationDate,1990:2000)"
    }
  ],
  "facetValueFilters":[
    {
      "fieldName":"ContentType",
      "value":"Journal Article",
      "isNegated":false,
      "removeCommand":"removeFacetValueFilter(ContentType,Journal Article)",
      "negateCommand":"negateFacetValueFilter(ContentType,Journal Article)"
    }
  ],
  "facetValueGroupFilters":[
    {
      "tag":"1",
      "fieldName":"ContentType",
      "combineMode":"or",
      "removeCommand":"removeFacetValueGroupFilter(1)",
      "values":[
        {
          "value":"Book",
          "removeCommand":"removeFacetValueGroupFilter(1,Book)"
        },
        {
          "value":"Journal Article",
          "removeCommand":"removeFacetValueGroupFilter(1,Journal Article)"
        }
      ]
    }
  ],
  "facetFields":[
    {
      "fieldName":"ContentType",
      "combineMode":"or",
      "pageNumber":1,
      "pageSize":1,
      "removeCommand":"removeFacetField(ContentType)"
    }
  ],
  "rangeFacetFields":[
    {
      "fieldName":"PublicationDate",
      "removeCommand":"removeFacetField(PublicationDate)",
      "ranges":[
        {
          "minValue":"1990",
          "maxValue":"2000"
        }
      ]
    }
  ],
  "sort":[
    {
      "fieldName":"PublicationDate",
      "sortOrder":"desc"
    }
  ]
}

Range Facet Fields Response Field

The rangeFacetFields field will be populated if if any range facet field counts were requested in the query. Each rangeFacetField contains the following 4 fields:

  • fieldName - the name of the field being faceted on
  • displayName - the human friendly name of the field being faceted on
  • removeCommand - command to remove this range facet field from the list of requested range facet fields
  • counts - list of the rangeFacetCount items for the individual ranges

Each rangeFacetCount contains the following 4 fields:

  • count - the document count
  • isApplied - whether or not there is a range filter already applied for this range
  • applyCommand - available if not isApplied - the command to apply a range filter for this range
  • removeCommand - available if isApplied - the command to remove the range filter for this range
  • range - the range being counted - contains a minValue and maxValue

The counts field is the only list on rangeFacetField, so there is no nested element for it.

Example - A rangeFacetFields element in XML format

<rangeFacetFields>
  <rangeFacetField
   fieldName="PublicationDate_dt"
   displayName="PublicationDate"
   removeCommand="removeFacetField(PublicationDate)">
    <rangeFacetCount
     count="44512"
     isApplied="true"
     removeCommand="removeRangeFilter(PublicationDate,1981:1990)">
      <range
       minValue="1981"
       maxValue="1990"/>
    </rangeFacetCount>
    <rangeFacetCount
     count="71826"
     isApplied="false"
     applyCommand="addRangeFilter(PublicationDate,1991:2000)">
      <range
       minValue="1991"
       maxValue="2000"/>
    </rangeFacetCount>
  </rangeFacetField>
</rangeFacetFields>

Example - A rangeFacetFields object in JSON format

"rangeFacetFields":[
  {
    "fieldName":"PublicationDate_dt",
    "displayName":"PublicationDate",
    "removeCommand":"removeFacetField(PublicationDate)",
    "counts":[
      {
        "range":{
          "minValue":"1981",
          "maxValue":"1990"
        },
        "count":45763,
        "isApplied":true,
        "removeCommand":"removeRangeFilter(PublicationDate,1981:1990)"
      },
      {
        "range":{
          "minValue":"1991",
          "maxValue":"2000"
        },
        "count":73459,
        "isApplied":false,
        "applyCommand":"addRangeFilter(PublicationDate,1991:2000)"
      }
    ]
  }
]

Recommendation Lists Response Field

The recommendationLists field will be populated if the query is eligible for database recommendations or best bets.

Database Recommendations

Each database recommendation contains the following three fields:
  • title - the database title
  • description - the brief description of the database
  • link - the URL with the library proxy embedded to the database

Example - A recommendationLists element in XML format

<recommendationLists>
  <recommendationList type="database">
    <recommendation title="CINAHL with Full Text"
        description="The Cumulative Index to Nursing and Allied Health Literature"
        link="http://proxy.myinstitution.edu/login?URL=http://search.ebscohost.com/login.aspx?authtype=ip,uid&amp;profile=ehost"/>
  </recommendationList>
</recommendationLists>

Best Bets

Each best bet contains the following three fields:
  • title - the best bet title
  • description - the best bet message
  • link - the URL to a web page with more details

Example - A recommendationLists element in XML format

<recommendationLists>
  <recommendationList type="bestBet">
    <recommendation icon="null" title="Library Hours" description="&lt;p&gt;Sun: 7am - 10pm &amp;nbsp; &amp;nbsp; Thu: 7am - 10pm&lt;/p&gt;&#xd;
&lt;p&gt;Mon: 7am - 10pm &amp;nbsp; &amp;nbsp; Fri: 7am - 8pm&lt;/p&gt;&#xd;
&lt;p&gt;Tue: 7am - 10pm &amp;nbsp; &amp;nbsp; Sat: 10am - 6pm&lt;/p&gt;&#xd;
&lt;p&gt;Wed: 7am - 10pm&lt;/p&gt;" link=""/>

  </recommendationList>
</recommendationLists>