advertisement

Alfresco en quelques points - Recherche Tutorial

60 %
40 %
advertisement
Information about Alfresco en quelques points - Recherche Tutorial
Technology

Published on August 8, 2008

Author: JM.Pascal

Source: slideshare.net

Description

Comment rechercher avec Alfresco avec Lucene et xPath ?
advertisement

Quelle est cette fleur ? Recherche Tutorial

Il s’agit d’Alfresco !

Une solution ECM Open Source

Le problème ?

Personnes curieuses de connaître Alfresco...

Avec beaucoup de questions… (A formuler…)

Une solution possible

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

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

Allons-y !

Mais avant un rappel !

Un principe… Tout est nœud ! (Everything is NODE!) Quel beau nœud je suis!

Une règle… Alfresco fournit des services pour gérer Des noeuds Eh oui… Même moi j’ai un patron…

Maintenant Allons-y !

J’ai cru comprendre qu’il existe plusieurs langages de recherches possibles…

Effectivement! Petit tour d’horizon…

Lucene XPath

Lucene en premier!

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

Et dans Alfresco… Comment cela fonctionne ?

Pour résumé…

1. La collecte Type Aspect Propriétés Mot clés ID

2. La conservation ID As pec Type t Proprié tés Mot clés

3. L’utilisation tés Proprié Mot clés Aspect

Pour aller plus loin…

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é

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

Pour le vérifier…

Il faut consulter le modèle de données ! Fichier : contentModel.xml

Mais quel est le principe de la « tokenisation » ? Fichier : contentModel.xml

Il s’agit de découper (ou non) un (des) mot(s) en plusieurs mots clés.

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

Si on n’effectue pas de segmentation (tokenised)… u t en C onIl s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

On effectue une copie conforme de la phrase dans l’index. u t en C onIl s’agit d’une présentation PowerPoint sur Alfresco et la recherche. D EX IN Il s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

Pour rechercher, il faudra donc connaître la phrase entière ! u t en C onIl s’agit d’une présentation PowerPoint sur Alfresco et la recherche. D EX IN Il s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

Par contre si on effectue une segmentation… u t en C onIl s’agit d’une présentation PowerPoint sur Alfresco et la recherche.

On ne prend que les mots clés de la phrase! u t en C onIl s’agit d’une présentation PowerPoint sur Alfresco et la recherche. D EX IN Présentation, PowerPoint, Alfresco, recherche

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

OK… Démonstrations!

Un peu de théorie

Lucene dans Alfresco permet de faire des requêtes sur… • Le NodeRef (ID) • Le Type D’un NŒUD! • Les Propriétés • Les Aspects Vous travaillez pour les services secrets ? • Les Mot Clés (Contenu)

Les Requêt es

Pour faire une requête sur le Noderef ID:quot; <Mon NodeRef> quot; L’utilité de rechercher un nœud dont on sait déjà qui il est ?

Pour faire une requête sur le Type TYPE:quot; <TypeQName> quot; J’espère que vous vous rappelez du QName… Sinon c’est par ici

Pour faire une requête sur une propriété @<QNamePropriété>:quot; Valeur quot; Pourquoi c’est pas pareil que les autres?? Pourquoi c’est pas en majuscules ?

Pour faire une requête sur un Aspect ASPECT:quot; <AspectQName> quot; AAhh! La c’est mieux!

Pour faire une requête sur un mot clé du contenu d’un noeud TEXT:<valeur> Bon ok… j’ai compris le principe! On commence à s’ennuyer la…

Mise en conditi on

Voici notre terrain

Mise en Pratiqu e

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!

Comment faire simplement une requête lucene Se connecter avec le rôle « admin » à Alfresco Cliquer sur Puis choisir navigateur de noeuds

Comment faire simplement une requête lucene Choisir le store : workspace://SpacesStore Dans la liste déroulante, choisir Lucene

Prêt ?

Je veux le « Folder Test »

Je veux le « Folder Test »!!!!! @cm:name:’’Folder Test’’

Résultat

Un rappel !

Pour identifier et rendre unique un nœud dans un store, on utilise … Un UUID

La concaténation du protocole, du nom du store et de l’UUID d’un nœud forme Un NodeRef

Dans notre cas NodeRef UUID

Je veux le « Foder Test » mais avec l’UUID ID:quot;workspace://SpacesStore/ b7ecc8b1-5edb-11dd- afdd-79a008cbb404quot;

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

On peut rajouter des opérateurs !

Les Opérateurs + 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

Je veux tous les espaces avec le nom « space » TYPE:quot;cm:folderquot; AND @cm:name:quot;Spacequot; TYPE:quot;cm:folderquot; +@cm:name:quot;Spacequot; +TYPE:quot;cm:folderquot; AND @cm:name:quot;Spacequot;

Résultat

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.

Ajout d’une catégorie à un espace Mise en conditi on

Je veux tous les folders avec le nom « space » et qui posséde une catégorie TYPE:quot;cm:folderquot; AND @cm:name:quot;Spacequot; AND ASPECT:quot;cm:generalclassifiablequot;

Je veux tous les espaces avec le nom « space » et qui NE posséde PAS une catégorie TYPE:quot;cm:folderquot; AND @cm:name:quot;Spacequot; AND NOT ASPECT:quot;cm:generalclassifiablequot; TYPE:quot;cm:folderquot; +@cm:name:quot;Spacequot; -ASPECT:quot;cm:generalclassifiablequot;

Résultat

Remarque Cette zone est expérimentale et est très aléatoire suivant les expériences !

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

Les opérateurs spéciaux ? Peut remplacer un caractère * Peut remplacer plusieurs caractères

Je veux tous les espaces avec le nom commençant par « spa » TYPE:quot;cm:folderquot; AND @cm:name:quot;Spa*quot; TYPE:quot;cm:folderquot; +@cm:name:quot;Spa*quot;

Je veux tous les espaces avec le nom terminant par « ace » TYPE:quot;cm:folderquot; AND @cm:name:quot;*acequot; TYPE:quot;cm:folderquot; +@cm:name:quot;*acequot;

Remarque FIN DE ZONE EN CHANTIER! Cette zone était expérimentale!

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

Maintenant XPath!

XPath ? • XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer. • Source w3c.org

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

En effet mais…

Un principe… Un nœud peut être vu comme Un XML J’ai une drôle de Mirroir tête moi… XML

La preuve dans Alfresco…

ACP WebApp

ACP Explorateur

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

Effectivement ! Démonstrations..

Un peu de théorie

XPath dans Alfresco permet de faire des requêtes sur… • Le Type • Les Propriétés D’un NŒUD! • Les Aspects • Les associations Pourquoi toujours moi…

Les Axes

Vous savez jouer au jeu des 7 familles ? Eh bien les axes XPath c’est pareil!

Dans la famille Nœud, je voudrais moi ! self

Ensuite mon Père! parent

Ensuite mes enfants! Child

Ensuite mes frères ainés preceding-sibling

Ensuite mes soeurs cadettes following-sibling

Maintenant, allons plus loin dans ma famille!

Je veux connaître toute ma descendance ! descendant

Je veux connaître tous mes ancêtres ancestor

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

Je veux tous les nœuds plus jeunes following

Hein… Elle est belle ma famille?

Malheureusement, toute la famille n’est pas visible avec Alfresco… following following-sibling preceding-sibling preceding

Les Requêt es

Pour faire une requête sur un axe Axe::* En gros, Je veux tous les nœuds de cet axe!

Pour faire une requête sur une propriété Axe::*[@<QName>:’<Valeur>’] Ca me rappelle un peu Lucene…

Pour faire une requête sur un aspect Axe::*[hasAspect(’<QNameAspect>’)] L’aspect ne fait pas le nœud… Drôle non ?

Pour faire une requête sur un type Axe::*[subtypeOf(’<QNameType>’)] Attention ! Il s’agit du type et des types fils!!!

Pour faire une requête sur l’ensemble des propriétés et du contenu… Axe::*[contains(’<Valeur>’)] Utile, n’est il pas ?

Mise en conditi on

Voici notre terrain

Mise en Pratiqu e

Comment faire simplement une requête lucene Se connecter avec le rôle « admin » à Alfresco Cliquer sur Puis choisir navigateur de noeuds

Comment faire simplement une requête lucene Choisir le store : workspace://SpacesStore Dans la liste déroulante, choisir selectNodes

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

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

XPath : Absolue par rapport à la SelectNodes : racine du store Relatif au nœud en cours

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

Prêt ?

Je veux le nœud en cours self::*

Résultat

Je veux les fils du nœud en cours descendant::*

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

Je veux le fils qui posséde une description « Space 1.1 Description » descendant::*[@cm:description ='Space 1.1 Description']

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

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')]

Je veux le fils qui possède l’aspect lié aux catégories et qui soit de type folder descendant::*[hasAspect('cm:genera lclassifiable') and subtypeOf('cm:folder')]

Pour en savoir plus • Wikipedia [FR] • W3Schools[ENG] • Spécifications W3C : Xpath 1.0[ENG] • Spécifications W3C : XPath 2.0[ENG] • Developpez.com (A voir!)

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

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

En premier, pensez Alfreso Service Registry !

Et faites appel à … AttributeService MultilangualContentService AuditService ScriptService ActionService AuthorityService AuthenticationService SearchService RuleService NodeService TemplateService AVMService CopyService LockService CategoryService CheckOutCheckInService FileFolderService ContentService MimeTypeService EditionService DictionnaryService WorkflowService ImporterService ExporterService VersionService TransactionService

Et faites appel à … AttributeService MultilangualContentService AuditService ScriptService ActionService AuthorityService AuthenticationService SearchService RuleService NodeService TemplateService AVMService CopyService LockService CategoryService CheckOutCheckInService FileFolderService ContentService MimeTypeService EditionService DictionnaryService WorkflowService ImporterService ExporterService VersionService TransactionService

Ou encore… AttributeService MultilangualContentService AuditService ScriptService ActionService AuthorityService AuthenticationService SearchService RuleService NodeService TemplateService AVMService CopyService LockService CategoryService CheckOutCheckInService FileFolderService ContentService MimeTypeService EditionService DictionnaryService WorkflowService ImporterService ExporterService VersionService TransactionService

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

Maintenant à vous de chercher… Ou rechercher!

Des questions ???

Pour une prochaine fois…

Dans les prochains épisodes…

Et si je veux partager mes nœuds ?

Il faudra utiliser les protocoles…

Pour découvrir…

Pour aller de l’avant…

Et pour atteindre ces objectifs…

Choisissez l’ECM Open Source

Alfresco en quelques points… Par JM.PASCAL www.opensourceecm.fr & www.open-source-ecm.com

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Alfresco en quelques points - Recherche Tutorial - Technology

Comment rechercher avec Alfresco avec Lucene et xPath ? ... Alfresco en quelques points - Recherche Tutorial; Alfresco en quelques points - Recherche Tutorial
Read more

Alfresco en quelques points : Services Tutorial - Technology

Quelle estcettefleur ?Services Tutorial 2. Il s’agit d’Alfresco ! 3. Une solution ECM Open Source 4. ... Alfresco en quelques points : Services ...
Read more

Mise en place de la recherche | Alfresco Forums

Sur un serveur Alfresco 2.1 et plus, vous pouvez en voir des ... de la Recherche Approfondie d'Alfresco, ... avec ce tutorial qu'avec quelques ...
Read more

la base de données alfresco | Alfresco Community

... détaillé de toute la base de données alfresco? moi j'ai fait des recherche sans ... fr/2008/07/tutorial-alfresco-en-quelques-points ...
Read more

Alfresco Tutorial Español - Documents

En Alfresco usamos espacios para almacenar y organizar el contenido y otros espacios, ... Alfresco en quelques points - Recherche Tutorial. Login or Join.
Read more

Télécharger Tutorial alfresco francais gratuit ...

Télécharger Tutorial alfresco ... à traduire ciblées en quelques minutes sur des ... une vision globale des points forts et ...
Read more