Présentation
Ce post concerne le service Oracle Content & Experience (aka Documents Cloud service) donne des indications sur le fonctionnement de la recherche de type fulltext et la recherche sur les metadata
- La recherche Full Text fonctionne correctement via l’API REST et via les autres interfaces. La recherche structurée ne fonctionne qu’avec les APIs REST.
- La recherche sur les Metadata (Custom Properties) fonctionne via l’API REST et d’une façon moins structurée via les autres interfaces. Il faut auparavant activer l’indexation sur ces metadata via l’API REST. On peut ainsi déclencher une recherche du type: Liste de tous les documents pour lesquels contrat.metier=nettoyage. Via l’interface Web, on ne peut que préciser le mot « nettoyage« , mais sans pouvoir indiquer qu’il s’agit de la valeur de l’attibut metier. La recherche, dans ce dernier cas, sera donc moins précise qu’avec l’API REST.
source: cf documentation APIs REST
Mise en Oeuvre
- Mise en place de metadata (Custom Properties)
- Activer l’usage des metadata
- Créer un groupe de metadata (collection)
- Ajouter des attributs à cette collection
- Associer une collection de metadata (custom properties)
- Au niveau Folder
- Au niveau Document
Recherche sur les metadata (Custom Properties)
Activer l’indexation sur la metadata collection
Il faut effectuer cette opération au moins une fois afin de déclencher la création d’index spécifiques pour les metadonnées désignées.
Activer les index sur les Custom properties à l’aide de l’API REST metadata/searchFields:
https://<tenant>.documents.us2.oraclecloud.com:443/ documents/api/1.2/metadata/searchFields
BODY
{ "collection":"Qualite", "fields":"Organisation,idClient" }
Résultat:
{ "errorCode": "0" }
APIs de Recherche
On utilise l’api folders/search ou folders/{id}/search.
Voici un exemple de recherche sur une metadata (Organisation):
https://<tenant>.documents.us2.oraclecloud.com:443/ documents/api/1.2/folders/search/ items?querytext=Qualite.Organisation<CONTAINS>%60Madrid%60
%60 correspond au caractère backslash (`)
Résultat:
{ "count": "1", "errorCode": "0", "offset": "0", "totalCount": "1", "items": [ {"type": "file", "id": "XXXXX73C3AE2FC9F89XXXXXXXXX684E9015A1C98104", "name": "fi-sw-nor_fr.pdf",…} ] }
Recherche Fulltext
On utilise le verbe fulltext.
/folders/search/items?fulltext=Marseille&limit=100
(tous les documents contenant le mot Marseille, soit dans le corps du document soit dans le titre ou la description, soit dans les tags ou métadonnées)
Combinaison FullText et metadata
Exemple de requête avec une combinaison de recherche sur metadata et fulltext
Il faut utiliser querytext (et non pas fulltext) et combiner un prédicat avec une métadonnée et l’autre avec une recherche fulltext (opérateur <ftx>)
Qualite.Organisation<CONTAINS>%60Marseille%60<OR> <ftx>canebière</ftx>
(tous les documents dont l’organisation est égal à « Marseille » ou bien dans lesquels apparait le mot « cannebière »)
Remarque: la recherche est « sensible » aux voyelles accentuées:
canebiere n’est pas la même chose que canebière