152
Recherche Tutorial Quelle est cette fleur ?

Alfresco en quelques points - Recherche Tutorial

Embed Size (px)

DESCRIPTION

Comment rechercher avec Alfresco avec Lucene et xPath ?

Citation preview

Page 1: Alfresco en quelques points - Recherche Tutorial

Recherche Tutorial

Quelle est cette fleur ?

Page 2: Alfresco en quelques points - Recherche Tutorial

Il s’agit d’Alfresco !

Page 3: Alfresco en quelques points - Recherche Tutorial

Une solution ECM Open Source

Page 4: Alfresco en quelques points - Recherche Tutorial

Le problème ?

Page 5: Alfresco en quelques points - Recherche Tutorial

Personnes curieuses de connaître Alfresco...

Page 6: Alfresco en quelques points - Recherche Tutorial

Avec beaucoup de questions… (A formuler…)

Page 7: Alfresco en quelques points - Recherche Tutorial

Une solution possible

Page 8: Alfresco en quelques points - Recherche Tutorial

Simple présentateur de présentations sur Alfresco...

Page 9: Alfresco en quelques points - Recherche Tutorial

Avec quelques réponses… (A vérifier)

Page 10: Alfresco en quelques points - Recherche Tutorial

Allons-y !

Page 11: Alfresco en quelques points - Recherche Tutorial

Mais avant un rappel !

Page 12: Alfresco en quelques points - Recherche Tutorial

Un principe…Tout est nœud !

(Everything is NODE!)

Quel beau nœud je suis!

Page 13: Alfresco en quelques points - Recherche Tutorial

Une règle…Alfresco fournit des services pour gérer

Des noeuds

Eh oui… Même moi j’ai un patron…

Page 14: Alfresco en quelques points - Recherche Tutorial

Maintenant Allons-y !

Page 15: Alfresco en quelques points - Recherche Tutorial

J’ai cru comprendre qu’il existe plusieurs langages

de recherches possibles…

Page 16: Alfresco en quelques points - Recherche Tutorial

Effectivement!Petit tour d’horizon…

Page 17: Alfresco en quelques points - Recherche Tutorial

XPath

Lucene

Page 18: Alfresco en quelques points - Recherche Tutorial

Lucene en premier!

Page 19: Alfresco en quelques points - Recherche Tutorial

Lucene ?• Apache Lucene is a high-

performance, full-featured text search engine library written entirely in Java.

• Although Lucene provides the ability to create your own queries through its API, it also provides a rich query language through the Query Parser, a lexer which interprets a string into a Lucene Query using JavaCC.

• Source: Lucene.org

Page 20: Alfresco en quelques points - Recherche Tutorial

Et dans Alfresco… Comment cela fonctionne ?

Page 21: Alfresco en quelques points - Recherche Tutorial

Pour résumé…

Page 22: Alfresco en quelques points - Recherche Tutorial

1. La collecte

PropriétésAspect

Mot clés

ID

Type

Page 23: Alfresco en quelques points - Recherche Tutorial

2. La conservation

Propriétés

Aspect

Mot clés

IDType

Page 24: Alfresco en quelques points - Recherche Tutorial

3. L’utilisation

Propriétés

Mot clésAspect

Page 25: Alfresco en quelques points - Recherche Tutorial

Pour aller plus loin…

Page 26: Alfresco en quelques points - Recherche Tutorial

Lors de la création d’un nœud, il y a • Une indexation de

l’ensemble des propriétés de l’élément

&

• Une indexation plein texte du contenu associé

Page 27: Alfresco en quelques points - Recherche Tutorial

Lors de la création d’un nœud, il y a

• Une indexation plein texte du contenu associé si le contenu est au format : – Office (Open ou Microsoft)– XML/HTML– PDF– Emails– Texte

Page 28: Alfresco en quelques points - Recherche Tutorial

Pour le vérifier…

Page 29: Alfresco en quelques points - Recherche Tutorial

Il faut consulter le modèle de données !

Fichier : contentModel.xml

Page 30: Alfresco en quelques points - Recherche Tutorial

Fichier : contentModel.xml

Mais quel est le principe de la

« tokenisation » ?

Page 31: Alfresco en quelques points - Recherche Tutorial

Il s’agit de découper (ou non) un (des)

mot(s) en plusieurs mots clés.

Page 32: Alfresco en quelques points - Recherche Tutorial

Il s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

Prenons une phrase comme

exemple

Page 33: Alfresco en quelques points - Recherche Tutorial

Il s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

Si on n’effectue pas de segmentation

(tokenised)…

Contenu

Page 34: Alfresco en quelques points - Recherche Tutorial

Il s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

On effectue une copie conforme de la

phrase dans l’index.

Il s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

INDEX

Contenu

Page 35: Alfresco en quelques points - Recherche Tutorial

Il s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

Pour rechercher, il faudra donc connaître

la phrase entière !

Il s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

INDEX

Contenu

Page 36: Alfresco en quelques points - Recherche Tutorial

Il s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

Par contre si on effectue une

segmentation…

Contenu

Page 37: Alfresco en quelques points - Recherche Tutorial

Il s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

On ne prend que les mots clés de la

phrase!

Présentation, PowerPoint, Alfresco, recherche

INDEX

Contenu

Page 38: Alfresco en quelques points - Recherche Tutorial

Donc n’oubliez pas de vérifier le modèle de

données !

Page 39: Alfresco en quelques points - Recherche Tutorial
Page 40: Alfresco en quelques points - Recherche Tutorial

OK… Démonstrations!

Page 41: Alfresco en quelques points - Recherche Tutorial

Un peu de théorie

Page 42: Alfresco en quelques points - Recherche Tutorial

Lucene dans Alfresco permet de faire des requêtes sur…

Vous travaillez pour les services secrets ?

• Le NodeRef (ID) Le NodeRef (ID)

• Le TypeLe Type

• Les PropriétésLes Propriétés

• Les AspectsLes Aspects

• Les Mot Clés Les Mot Clés (Contenu)(Contenu)

D’un NŒUD!D’un NŒUD!

Page 43: Alfresco en quelques points - Recherche Tutorial

Les Requêtes

Page 44: Alfresco en quelques points - Recherche Tutorial

Pour faire une requête sur le Noderef

L’utilité de rechercher un nœud dont on sait déjà qui

il est ?

ID:" <Mon NodeRef> "ID:" <Mon NodeRef> "

Page 45: Alfresco en quelques points - Recherche Tutorial

Pour faire une requête sur le Type

J’espère que vous vous rappelez du QName…

TYPE:" <TypeQName> "TYPE:" <TypeQName> "

Sinon c’est par ici

Page 46: Alfresco en quelques points - Recherche Tutorial

Pour faire une requête sur une propriété

Pourquoi c’est pas pareil que les autres??

@<QNamePropriété>\:" Valeur "@<QNamePropriété>\:" Valeur "

Pourquoi c’est pas en majuscules ?

Page 47: Alfresco en quelques points - Recherche Tutorial

Pour faire une requête sur un Aspect

AAhh! La c’est mieux!

ASPECT:" <AspectQName> "ASPECT:" <AspectQName> "

Page 48: Alfresco en quelques points - Recherche Tutorial

Pour faire une requête sur un mot clé du contenu d’un

noeud

Bon ok… j’ai compris le principe!

TEXT:<valeur>TEXT:<valeur>

On commence à s’ennuyer la…

Page 49: Alfresco en quelques points - Recherche Tutorial

Mise en condition

Page 50: Alfresco en quelques points - Recherche Tutorial

Voici notre terrain

Page 51: Alfresco en quelques points - Recherche Tutorial

Mise en Pratique

Page 52: Alfresco en quelques points - Recherche Tutorial

Remarque

Lucene et Alfresco!Suivant la version que vous possédez

d’Alfresco, il se peut que les résultats que vous obteniez soit totalement

différents des miens.

C’est aussi ça la magie de la recherche!

Page 53: Alfresco en quelques points - Recherche Tutorial

Comment faire simplement une requête lucene

Se connecter avec le rôle « admin » à Alfresco

Cliquer sur

Puis choisir navigateur de noeuds

Page 54: Alfresco en quelques points - Recherche Tutorial

Comment faire simplement une requête lucene

Choisir le store : workspace://SpacesStore

Dans la liste déroulante, choisir Lucene

Page 55: Alfresco en quelques points - Recherche Tutorial

Prêt ?

Page 56: Alfresco en quelques points - Recherche Tutorial

Je veux le « Folder Test »

Page 57: Alfresco en quelques points - Recherche Tutorial
Page 58: Alfresco en quelques points - Recherche Tutorial

Je veux le « Folder Test »!!!!!

@cm\:name:’’Folder Test’’@cm\:name:’’Folder Test’’

Page 59: Alfresco en quelques points - Recherche Tutorial

Résultat

Page 60: Alfresco en quelques points - Recherche Tutorial

Un rappel !

Page 61: Alfresco en quelques points - Recherche Tutorial

Pour identifier et rendre unique un nœud dans un store, on

utilise …

UnUUID

Page 62: Alfresco en quelques points - Recherche Tutorial

La concaténation du protocole, du nom du store et de l’UUID

d’un nœud forme

UnNodeRef

Page 63: Alfresco en quelques points - Recherche Tutorial

Dans notre cas

UUIDNodeRef

Page 64: Alfresco en quelques points - Recherche Tutorial

Je veux le « Foder Test » mais

avec l’UUID ID:"workspace://SpacesStore/ID:"workspace://SpacesStore/

b7ecc8b1-5edb-11dd-b7ecc8b1-5edb-11dd-afdd-79a008cbb404"afdd-79a008cbb404"

Page 65: Alfresco en quelques points - Recherche Tutorial
Page 66: Alfresco en quelques points - Recherche Tutorial

Et si on veut plusieurs critères à notre recherche ?

Page 67: Alfresco en quelques points - Recherche Tutorial

On peut rajouter des opérateurs !

Page 68: Alfresco en quelques points - Recherche Tutorial

+ Pour ajouter un critère validé - Pour ajouter un critère non validé

AND Pour ajouter un critère

OR Pour ajouter un choix entre critères

NOT Pour exclure un critère

Les Opérateurs

Page 69: Alfresco en quelques points - Recherche Tutorial

Je veux tous les espaces avec le nom « space »TYPE:"cm:folder" AND @cm\:name:"Space"

TYPE:"cm:folder" +@cm\:name:"Space"

+TYPE:"cm:folder" AND @cm\:name:"Space"

Page 70: Alfresco en quelques points - Recherche Tutorial

Résultat

Page 71: Alfresco en quelques points - Recherche Tutorial

Remarque

FOLDER ≈ ESPACE

Folder représente un type de nœud.

Space est la traduction littérale anglaise d’un folder.

Espace est la traduction littérale du Space anglais.

Page 72: Alfresco en quelques points - Recherche Tutorial

Ajout d’une catégorie à un espace

Mise en condition

Page 73: Alfresco en quelques points - Recherche Tutorial

Je veux tous les folders avec le nom « space » et qui posséde

une catégorieTYPE:"cm:folder"

AND @cm\:name:"Space" AND ASPECT:"cm:generalclassifiable"

Page 74: Alfresco en quelques points - Recherche Tutorial

Je veux tous les espaces avec le nom « space » et qui

NE posséde PAS une catégorieTYPE:"cm:folder"

AND @cm\:name:"Space" AND NOT ASPECT:"cm:generalclassifiable"

TYPE:"cm:folder" +@cm\:name:"Space" -ASPECT:"cm:generalclassifiable"

Page 75: Alfresco en quelques points - Recherche Tutorial

Résultat

Page 76: Alfresco en quelques points - Recherche Tutorial

Remarque

Cette zone est expérimentale et est très

aléatoire suivant les expériences !

Page 77: Alfresco en quelques points - Recherche Tutorial

Il existe des opérateurs spéciaux pour la recherche !

Page 78: Alfresco en quelques points - Recherche Tutorial

? Peut remplacer un caractère

* Peut remplacer plusieurs

caractères

Les opérateurs spéciaux

Page 79: Alfresco en quelques points - Recherche Tutorial

Je veux tous les espaces avec le nom commençant par « spa »

TYPE:"cm:folder" AND @cm\:name:"Spa*"

TYPE:"cm:folder" +@cm\:name:"Spa*"

Page 80: Alfresco en quelques points - Recherche Tutorial

Je veux tous les espaces avec le nom terminant par « ace »

TYPE:"cm:folder" AND @cm\:name:"*ace"

TYPE:"cm:folder" +@cm\:name:"*ace"

Page 81: Alfresco en quelques points - Recherche Tutorial

Remarque

FIN DE ZONE EN CHANTIER!

Cette zone était expérimentale!

Page 82: Alfresco en quelques points - Recherche Tutorial

Pour en savoir plus Lucene WebSite• http://lucene.apache.org/• http://lucene.apache.org/java/docs/queryparsersyntax.html

Alfresco Wiki• http://wiki.alfresco.com/wiki/Search#Lucene• http://wiki.alfresco.com/wiki/Lucene• http://wiki.alfresco.com/wiki/Lucene_Extensions_and_Issues

Page 83: Alfresco en quelques points - Recherche Tutorial

Maintenant XPath!

Page 84: Alfresco en quelques points - Recherche Tutorial

XPath ?• XPath is a language for

addressing parts of an XML document, designed to be used by both XSLT and XPointer.

• Source w3c.org

Page 85: Alfresco en quelques points - Recherche Tutorial

Mais on parle de nœuds… Pas de xml…

Page 86: Alfresco en quelques points - Recherche Tutorial

En effet mais…

Page 87: Alfresco en quelques points - Recherche Tutorial

Un principe…Un nœud

peut être vu commeUn XML

Mirroir

XML

J’ai une drôle de tête moi…

Page 88: Alfresco en quelques points - Recherche Tutorial

La preuve dans Alfresco…

Page 89: Alfresco en quelques points - Recherche Tutorial

WebApp

ACP

Page 90: Alfresco en quelques points - Recherche Tutorial

Explorateur

ACP

Page 91: Alfresco en quelques points - Recherche Tutorial

Donc avec XPath, on peut naviguer dans les nœuds…

Page 92: Alfresco en quelques points - Recherche Tutorial

Effectivement !Démonstrations..

Page 93: Alfresco en quelques points - Recherche Tutorial

Un peu de théorie

Page 94: Alfresco en quelques points - Recherche Tutorial

XPath dans Alfresco permet de faire des requêtes sur…

Pourquoi toujours moi…

• Le TypeLe Type

• Les PropriétésLes Propriétés

• Les AspectsLes Aspects

• Les associationsLes associations

D’un NŒUD!D’un NŒUD!

Page 95: Alfresco en quelques points - Recherche Tutorial

Les Axes

Page 96: Alfresco en quelques points - Recherche Tutorial

Vous savez jouer au jeu des 7 familles ?

Eh bien les axes XPath c’est pareil!

Page 97: Alfresco en quelques points - Recherche Tutorial

Dans la famille Nœud, je voudrais moi !

selfself

Page 98: Alfresco en quelques points - Recherche Tutorial

Ensuite mon Père!

parentparent

Page 99: Alfresco en quelques points - Recherche Tutorial

Ensuite mes enfants!

ChildChild

Page 100: Alfresco en quelques points - Recherche Tutorial

Ensuite mes frères ainés

preceding-siblingpreceding-sibling

Page 101: Alfresco en quelques points - Recherche Tutorial

Ensuite mes soeurs cadettes

following-siblingfollowing-sibling

Page 102: Alfresco en quelques points - Recherche Tutorial

Maintenant, allons plus loin dans ma famille!

Page 103: Alfresco en quelques points - Recherche Tutorial

Je veux connaître toute ma descendance !

descendantdescendant

Page 104: Alfresco en quelques points - Recherche Tutorial

Je veux connaître tous mes ancêtres

ancestorancestor

Page 105: Alfresco en quelques points - Recherche Tutorial

Je veux tous les nœuds plus âgés

precedingpreceding

Page 106: Alfresco en quelques points - Recherche Tutorial

Je veux tous les nœuds plus jeunes

followingfollowing

Page 107: Alfresco en quelques points - Recherche Tutorial

Hein… Elle est belle ma famille?

Page 108: Alfresco en quelques points - Recherche Tutorial

Malheureusement, toute la famille n’est pas

visible avec Alfresco…

precedingpreceding

followingfollowing

preceding-siblingpreceding-sibling

following-siblingfollowing-sibling

Page 109: Alfresco en quelques points - Recherche Tutorial

Les Requêtes

Page 110: Alfresco en quelques points - Recherche Tutorial

Pour faire une requête sur un axe

En gros, Je veux tous les nœuds de cet axe!

Axe::*Axe::*

Page 111: Alfresco en quelques points - Recherche Tutorial

Pour faire une requête sur une propriété

Ca me rappelle un peu Lucene…

Axe::*[@<QName>:’<Valeur>’Axe::*[@<QName>:’<Valeur>’]

Page 112: Alfresco en quelques points - Recherche Tutorial

Pour faire une requête sur un aspect

L’aspect ne fait pas le nœud… Drôle non ?

Axe::*[hasAspect(’<QNameAspect>’)Axe::*[hasAspect(’<QNameAspect>’)]

Page 113: Alfresco en quelques points - Recherche Tutorial

Pour faire une requête sur un type

Attention ! Il s’agit du type et des types fils!!!

Axe::*[subtypeOf(’<QNameType>’)Axe::*[subtypeOf(’<QNameType>’)]

Page 114: Alfresco en quelques points - Recherche Tutorial

Pour faire une requête sur l’ensemble des propriétés

et du contenu…

Utile, n’est il pas ?

Axe::*[contains(’<Valeur>’)Axe::*[contains(’<Valeur>’)]

Page 115: Alfresco en quelques points - Recherche Tutorial

Mise en condition

Page 116: Alfresco en quelques points - Recherche Tutorial

Voici notre terrain

Page 117: Alfresco en quelques points - Recherche Tutorial

Mise en Pratique

Page 118: Alfresco en quelques points - Recherche Tutorial

Comment faire simplement une requête lucene

Se connecter avec le rôle « admin » à Alfresco

Cliquer sur

Puis choisir navigateur de noeuds

Page 119: Alfresco en quelques points - Recherche Tutorial

Comment faire simplement une requête lucene

Choisir le store : workspace://SpacesStore

Dans la liste déroulante, choisir selectNodes

Page 120: Alfresco en quelques points - Recherche Tutorial

Pourquoi est ce que l’on ne prend pas XPath ??

Page 121: Alfresco en quelques points - Recherche Tutorial

C’est la même chose!Sauf que …

Page 122: Alfresco en quelques points - Recherche Tutorial

SelectNodes : Relatif au nœud

en cours

XPath : Absolue par rapport à la

racine du store

Page 123: Alfresco en quelques points - Recherche Tutorial

Or nous on veut se placer dans un folder spécifique!

Page 124: Alfresco en quelques points - Recherche Tutorial

Prêt ?

Page 125: Alfresco en quelques points - Recherche Tutorial

Je veux le nœud en cours

self::*

Page 126: Alfresco en quelques points - Recherche Tutorial

Résultat

Page 127: Alfresco en quelques points - Recherche Tutorial

Je veux les fils du nœud en cours

descendant::*

Page 128: Alfresco en quelques points - Recherche Tutorial

Je veux le père du nœud en cours

parent::*

Page 129: Alfresco en quelques points - Recherche Tutorial

Je veux le fils qui posséde une description

« Space 1.1 Description »

descendant::*[@cm:description='Space 1.1 Description']

Page 130: Alfresco en quelques points - Recherche Tutorial

A noter que les opérateurs sont aussi disponibles en XPath…

Page 131: Alfresco en quelques points - Recherche Tutorial

Je veux le fils qui possède une description « Space 1.1

Description » et qui soit de type folder

descendant::*[@cm:description='Space 1.1 Description' and

subtypeOf('cm:folder')]

Page 132: Alfresco en quelques points - Recherche Tutorial

Je veux le fils qui possède l’aspect lié aux catégories et

qui soit de type folder

descendant::*[hasAspect('cm:generalclassifiable') and

subtypeOf('cm:folder')]

Page 134: Alfresco en quelques points - Recherche Tutorial

J’ai maintenant plein de nœuds! Mais Où est Charlie... Enfin… le bon nœud ?

Page 135: Alfresco en quelques points - Recherche Tutorial

Si vous cherchez un nœud, utilisez les services…

Page 136: Alfresco en quelques points - Recherche Tutorial

En premier, pensez Alfreso Service Registry !

Page 137: Alfresco en quelques points - Recherche Tutorial

Et faites appel à …ActionService

AttributeServiceAuditService

AuthenticationServiceAuthorityService

AVMService

CategoryService

CheckOutCheckInService

ContentService

CopyService

DictionnaryService

FileFolderService

EditionService

ExporterServiceImporterService

MimeTypeService

MultilangualContentService

NodeService

LockService

RuleService

ScriptService

SearchService

TemplateService

TransactionServiceVersionService

WorkflowService

Page 138: Alfresco en quelques points - Recherche Tutorial

Et faites appel à …ActionService

AttributeServiceAuditService

AuthenticationServiceAuthorityService

AVMService

CategoryService

CheckOutCheckInService

ContentService

CopyService

DictionnaryService

FileFolderService

EditionService

ExporterServiceImporterService

MimeTypeService

MultilangualContentService

NodeService

LockService

RuleService

ScriptService

SearchService

TemplateService

TransactionServiceVersionService

WorkflowService

Page 139: Alfresco en quelques points - Recherche Tutorial

Ou encore…ActionService

AttributeServiceAuditService

AuthenticationServiceAuthorityService

AVMService

CategoryService

CheckOutCheckInService

ContentService

CopyService

DictionnaryService

FileFolderService

EditionService

ExporterServiceImporterService

MimeTypeService

MultilangualContentService

NodeService

LockService

RuleService

ScriptService

SearchService

TemplateService

TransactionServiceVersionService

WorkflowService

Page 140: Alfresco en quelques points - Recherche Tutorial
Page 141: Alfresco en quelques points - Recherche Tutorial

Voilà! C’est fini pour aujourd’hui!

Page 142: Alfresco en quelques points - Recherche Tutorial

Maintenant à vous de chercher… Ou rechercher!

Page 143: Alfresco en quelques points - Recherche Tutorial

Des questions ???

Page 144: Alfresco en quelques points - Recherche Tutorial

Pour une prochaine fois…

Page 145: Alfresco en quelques points - Recherche Tutorial

Dans les prochains épisodes…

Page 146: Alfresco en quelques points - Recherche Tutorial

Et si je veux partager mes nœuds ?

Page 147: Alfresco en quelques points - Recherche Tutorial

Il faudra utiliser les protocoles…

Page 148: Alfresco en quelques points - Recherche Tutorial

Pour découvrir…

Page 149: Alfresco en quelques points - Recherche Tutorial

Pour aller de l’avant…

Page 150: Alfresco en quelques points - Recherche Tutorial

Et pour atteindre ces objectifs…

Page 151: Alfresco en quelques points - Recherche Tutorial

Choisissez l’ECM Open Source

Page 152: Alfresco en quelques points - Recherche Tutorial

Alfresco en quelques points…

Par JM.PASCAL

www.opensourceecm.fr&

www.open-source-ecm.com