Spécification d'API REST de recherche

Ce document décrit l'appel d'API pour la recherche dans HCL Digital Experience Portal. You can search HCL to find content that contains a specific text string in its title or content, or is tagged with a specific tag.

Chemins de contexte

Un certain nombre de chemins de contexte sont disponibles pour cette API afin de permettre différents mécanismes d'authentification :
Chemin de contexte Authentification
/PORTAL_CONTEXT/contenthandler/searchfeed/search Aucun
/PORTAL_CONTEXT/mycontenthandler/searchfeed/search De base

Paramètres

L'ordre d'apparition des paramètres dans la requête n'a pas d'importance. Les noms de paramètre sont sensibles à la casse et doivent être entrés dans le format documenté. Tout paramètre inconnu ou non pris en charge soumis dans le cadre d'une demande est ignoré.

La demande doit être une commande HTTP GET ou POST standard.
  • Dans le cas d'une demande GET, l'URL est formée de la combinaison du nom d'hôte, du port et du chemin du serveur de recherche, suivis d'une collection de paires nom-valeur (paramètres d'entrée) séparés par le caractère &. Toute valeur de paramètre doit être codée si elle figure dans une demande GET.
  • Dans le cas d'une demande POST, l'URL est formée de la combinaison du nom d'hôte, du port et du chemin du serveur de recherche, et une collection de paires nom-valeur (paramètres d'entrée) est transmise dans la demande en tant que paramètres.
Nom Description Commentaires
locale
  • Environnement local du client de requête
  • Tout message renvoyé se fait dans l'environnement local client
  • Les portées et collections disponibles, titres et descriptions sont dans l'environnement local client
  • La méthode de tri peut être effectuée par l'environnement local
  • Toute information supplémentaire dans les résultats de recherche tiennent compte de l'environnement local, comme la description
Spécifie la langue à utiliser pour faire une analyse syntaxique de la demande de recherche. Voir ISO-639 et ISO-3166 pour connaître les valeurs valides, par exemple. en_US. Ce paramètre est facultatif. Lorsqu'il est spécifié, le dictionnaire approprié à la langue spécifiée est utilisé.
Remarque : Le dictionnaire de la langue spécifiée doit être activé pour que ce paramètre fonctionne.
query
  • Texte à rechercher ; renvoie une liste de résultats avec le texte spécifié dans le titre, la description ou le contenu.
  • Codez les chaînes.
  • Par défaut, les espaces sont traités comme un opérateur OR.
Les opérateurs suivants sont pris en charge :
AND or &&
Recherche des éléments comportant les deux mots. Par exemple: query=red%20AND%20test renvoie les éléments contenant le mot red et test. AND est l'opérateur par défaut.
NOT or !
Exclut de la recherche le mot qui suit l'opérateur. Par exemple: query=test%20NOT%20red renvoie les éléments contenant le mot test, mais pas le mot red.
OR
Rechercher les éléments contenant l'un des mots. Par exemple: query=test%20OR%20red.

Pour rechercher une expression, placez celle-ci entre guillemets (" ").

+
Le signe plus indique que le mot doit être présent dans le résultat. Par exemple: query=+test%20red renvoie uniquement les éléments contenant le mot test et de nombreux éléments contenant également red, mais aucun contenant uniquement le mot red.
?
Utilisez un point d'interrogation pour remplacer des caractères individuels. Par exemple: query=te%3Ft renvoie les éléments contenant les mots test, text, tent et autres qui commencent par te.
-:
Le tiret interdit le renvoie d'un mot. Cet opérateur est similaire à NOT. Par exemple: query=test%20-red renvoie les éléments contenant le mot test, mais pas le mot red.
Remarque : Les recherche génériques sont autorisées mais il n'est pas possible d'utiliser uniquement le caractère générique (*).

Pour plus d'informations sur les opérateurs pris en charge, accédez à la rubrique Recherche.

queryLang Langue de la chaîne de requête Spécifie la langue à utiliser pour faire une analyse syntaxique du paramètre de requête. Voir ISO-639 et ISO-3166 pour connaître les valeurs valides, par exemple. en_US. Ce paramètre est facultatif. Lorsqu'il est spécifié, le dictionnaire approprié à la langue spécifiée est utilisé.
Remarque : Le dictionnaire de la langue spécifiée doit être activé pour que ce paramètre fonctionne.
start Décalage au premier résultat à renvoyer dans les résultats Définit un décalage à partir du premier résultat dans l'ensemble. Ce paramètre est ignoré si un paramètre page est fourni. La valeur part de 0. La valeur par défaut est 0. Si la valeur spécifiée est négative, elle prend par défaut la valeur 0 ; si la valeur spécifiée est supérieure au nombre de résultats, aucun résultat n'est renvoyé.
page Numéro de page Indique la page à renvoyer. La valeur par défaut est 1, qui renvoie la première page.
pageSize Nombre de résultats souhaités pour une demande unique Indique le nombre d'entrées à renvoyer par page. La valeur minimale est 0 (par défaut, les valeurs négatives sont définies sur 0). La valeur par défaut est 10. La valeur maximale pouvant être spécifiée est 150.
scope Identificateur de la portée de la recherche ; la liste des portées valides est disponible à la rubrique API de portées. Par défaut, la recherche s'effectue sur toutes les portées.
sortKey Clé qui contrôle l'ordre de tri des résultats de recherche. Valeurs prises en charge : date et relevance. Une valeur valide pour ce paramètre est l'une de ces valeurs ou le nom de toute autre zone triable.
sortOrder Détermine l'ordre de tri des résultats : croissant ou décroissant. Les seules valeurs valides sont asc ou desc.
constraint Autorise la contrainte des résultats de recherche en fonction des critères fournis. Critères fournis. Pour plus d'informations, voir API de contraintes.
facet Indique les facettes renvoyées pour la requête en plus des résultats de recherche. Ajout aux résultats de recherche. Pour plus d'informations, voir API de facettes.
index Indique quel index (collection) utiliser pour la recherche Pour plus d'informations, voir API d'index.

Exemples

/searchfeed/search?queryLang=en&locale=en&resultLang=en&query=development&scope=1345374377545&start=0&results=10 Requête de recherche avec texte de la requête = development.

Format de réponse

Réponse conforme à Atom. Le tableau suivant décrit la signification ds éléments renvoyés dans la réponse :
Section Remarques
/feed Elément conteneur des métadonnées et des données, associé au flux des résultats de la recherche.
/feed/title Titre descriptif du flux.
/feed/link[@href] Référence du flux à une ressource Web. Pour des informations, voir Pagination et archivage de flux.
/feed/link[@rel= "next"|"previous"|"first"|"last"] Les liens first, last, next et previous sont inclus pour la prise en charge.
/feed/author/name Description du générateur de flux.
/feed/id Identificateur unique universel permanent pour le flux.
/feed/updated Date et heure d'émission de la requête. La valeur est conforme à la production de date-heure dans RFC3339.
/feed/openSearch:totalResults Nombre total de résultats pour la requête soumise.
/feed/openSearch:Query Contient des informations sur la requête soumise par l'utilisateur.
/feed/openSearch:Query[@role] La valeur de l'attribut de rôle est request.
/feed/openSearch:Query[@searchTerms] Représente les termes de la requête soumise par l'utilisateur.
/feed/openSearch:startIndex Nombre initial de résultats pour les résultats de recherche renvoyés dans ce flux.
/feed/openSearch:itemsPerPage Nombre de résultats de recherche renvoyés dans ce flux.
/feed/entry Englobe les informations concernant un seul résultat de recherche.
/feed/entry/category Transporte les informations sur une catégorie (correspondant souvent à une facette) associée à une entrée.
/feed/entry/category@term Chaîne qui identifie la catégorie à laquelle l'entrée appartient.
/feed/entry/category@scheme IRI identifiant un schéma de catégorisation.
/feed/entry/title Construction de texte qui transmet un titre lisible pour une entrée.
/feed/entry/title[@type] Indique si le construction (syntaxe) du texte est text, html ou xhtml. La construction du texte est text si rien d'autre n'est spécifié.
/feed/entry/link Définit une référence à la ressource du résultat de recherche.
/feed/entry/link[@rel] Indique le type de relation de lien. Si n'est pas présent, le type est alternate.
/feed/entry/link[@href] Lien URI vers le document.
/feed/entry/link[@type] Le type de contenu du lien de document URI est un type de support de recommandation.
/feed/entry/relevance:score Indique une évaluation relative de pertinence pour un résultat de recherche particulier concernant la requête de recherche.
/feed/entry/updated Date de dernière modification du document. La valeur est conforme à la production de date-heure dans RFC3339.
/feed/entry/id Identificateur unique du document.
/feed/entry/summary Construction de texte qui transmet un bref récapitulatif, un résumé ou un extrait d'une entrée.
/feed/entry/summary[@type] Indique si le construction (syntaxe) du texte est text, html ou xhtml. La construction du texte est text si rien d'autre n'est spécifié.
/feed/entry/author Construction de personne qui indique l'auteur de l'entrée ou du flux.
/feed/entry/author/name Nom lisible pour la personne.
/feed/entry/author/uri Identificateur associé à la personne.
/feed/entry/author/email Adresse électronique de la personne. En fonction des paramètres de configuration d'HCL Connections, cette valeur peut ne pas être envoyée dans le flux.
/feed/entry/wplc:field Cette élément est utilisé pour représenter le nom et la valeur d'une zone d'un document. L'attribut id représente le nom de la zone. Le corps de l'élément représente la valeur de la zone. D'autres zones sont incluses dans la réponse des résultats de recherche si spécifié via le paramètre includeField.
/feed/ibmsc:facets Pour plus d'informations, voir Facettes.
  • Le namespace dans le tableau est http://www.w3.org/2005/Atom, sauf mention contraire.
  • L'identificateur openSearch est utilisé pour faire référence à l'espace de nom http://a9.com/-/spec/opensearch/1.1.
  • L'identificateur relevance est utilisé pour faire référence l'espace de nom http://a9.com/-/opensearch/extensions/relevance/1.0/.
  • L'identificateur ibmsc est utilisé pour faire référence l'espace de nom http://www.ibm.com/search/content/2010.
  • L'identificateur spelling est utilisé pour faire référence l'espace de nom http://a9.com/-/opensearch/extensions/spelling/1.0/.

Exemple

Pour rechercher sur HCL Digital Experience Portal la totalité du contenu qui contient le texte Development, envoyez la demande HTTP suivante :
 > GET /searchfeed/search?query=development&scope=com.ibm.lotus.search.ALL_SOURCES HTTP/1.1
Le contenu suivant est renvoyé par le serveur :

    <?xml version="1.0" encoding="UTF-8"?>
       <atom:feed xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"
           xmlns:xhtml="http://www.w3.org/1999/xhtml"
           xmlns:wplc="http://www.ibm.com/wplc/atom/1.0"
           xmlns:atom="http://www.w3.org/2005/Atom">
           <atom:title>Search results for query "development" on scope "com.ibm.lotus.search.ALL_SOURCES"</atom:title>
           <atom:link href="searchfeed:search" rel="self" type="application/atom+xml"/>
           <atom:author>
               <atom:name>Enterprise Search API Web Service.</atom:name>
           </atom:author>
           <atom:id>searchfeed:search</atom:id>
           <atom:category term="com.ibm.lotus.search.ALL_SOURCES" label="com.ibm.lotus.search.ALL_SOURCES"/>
           <atom:updated>2013-01-14T08:35:27.482Z</atom:updated>
           <opensearch:totalResults exact="true">412</opensearch:totalResults>
           <opensearch:Query role="request" searchTerms="development"/>
           <opensearch:startIndex>0</opensearch:startIndex>
           <opensearch:itemsPerPage>10</opensearch:itemsPerPage>

           <atom:entry>
              <atom:id>ResourceinjectionusingRationalApplicationDeveloperv7.5</atom:id>
              <atom:title type="text/html">Resource injection using Rational Application Developer v7.5</atom:title>
              <atom:author>
                 <atom:uri>Dan_Haim</atom:uri>
                 <atom:name>Dan Haim</atom:name>
              </atom:author>
              <atom:author>
                 <atom:uri>James_Chung</atom:uri>
                 <atom:name>James Chung</atom:name>
              </atom:author>
              <atom:link href="http://www.ibm.com/developerworks/rational/library/10/resourceinjectionwithrad7-5/index.html"/>
              <atom:category term="ContentSourceType/default" scheme="com.ibm.wplc.taxonomy://feature_taxonomy" label="Document"/>
              <opensearch:relevance>100.0</opensearch:relevance>
              <atom:updated>2010-06-07T06:49:09.000Z</atom:updated>
              <atom:summary type="html"><![CDATA[<Strong>Summary:</Strong> Java&#8482; platf....]]></atom:summary>
              <atom:link href="/wps/images/icons/Document.gif" rel="icon"/>
              <wplc:field id="name">95c189804d4268bf8d49ede9170f1e3d</wplc:field>
	        <wplc:field id="contentSourceType">Seedlist</wplc:field>
	       <wplc:field id="defaultcontext">/poc</wplc:field>
              <wplc:field id="effectivedate">1236246335000</wplc:field>
	         <wplc:field id="modifier">Replicator</wplc:field>
	         <wplc:field id="securecontext">/mypoc</wplc:field>
	         <wplc:field id="search_controllable_uuid">2c1e7b59-b465-49da-bc99-5aee3c00932b</wplc:field>
	         <wplc:field id="locale">en</wplc:field>
	         <wplc:field id="RatingAverage">4</wplc:field>
	         <wplc:field id="author_info">Dan_Haim<![CDATA[<Dan Haim<]]></wplc:field>
	         <wplc:field id="author_info">James_Chung<![CDATA[<James Chung<]]></wplc:field>
	         <wplc:field id="acls">public</wplc:field>
	         <wplc:field id="authoringtemplate">Blog Home</wplc:field>
	         <wplc:field id="popularity">7811</wplc:field>
	         <wplc:field id="security_ids">Z6QReDeIPO2JIT62BDIJM8CKHDAJMG6P1P2MM8C3BEIJMK61BPAMPCCG1CIJP8623</wplc:field>
	         <wplc:field id="difficulty">Advanced</wplc:field>
	         <wplc:field id="contentPath">/Blog Solo Template v70/Blog/Home/95c189804d4268bf8d49ede9170f1e3d</wplc:field>
	         <wplc:field id="category">Rational</wplc:field>
	     </atom:entry>
	      ...
	</atom:feed>