SlideShare a Scribd company logo
1 of 152
Download to read offline
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

More Related Content

What's hot

The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora - Benchmark ...
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora  - Benchmark ...The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora  - Benchmark ...
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora - Benchmark ...Symphony Software Foundation
 
Alfresco勉強会#18 alfrescoのバックアップとリストア
Alfresco勉強会#18 alfrescoのバックアップとリストアAlfresco勉強会#18 alfrescoのバックアップとリストア
Alfresco勉強会#18 alfrescoのバックアップとリストアTasuku Otani
 
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Panda Yamaki
 
Oracleからamazon auroraへの移行にむけて
Oracleからamazon auroraへの移行にむけてOracleからamazon auroraへの移行にむけて
Oracleからamazon auroraへの移行にむけてYoichi Sai
 
Alfresco Content Modelling and Policy Behaviours
Alfresco Content Modelling and Policy BehavioursAlfresco Content Modelling and Policy Behaviours
Alfresco Content Modelling and Policy BehavioursJ V
 
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門Takuya Iwatsuka
 
Sizing your alfresco platform
Sizing your alfresco platformSizing your alfresco platform
Sizing your alfresco platformLuis Cabaceira
 
0からわかるAlfresco
0からわかるAlfresco0からわかるAlfresco
0からわかるAlfrescoMoritakaSoma
 
Alfresco勉強会#40 QRコードによる文書の振り分け
Alfresco勉強会#40 QRコードによる文書の振り分けAlfresco勉強会#40 QRコードによる文書の振り分け
Alfresco勉強会#40 QRコードによる文書の振り分けTakeshi Totani
 
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える足を地に着け落ち着いて考える
足を地に着け落ち着いて考えるRyuji Tamagawa
 
Webinar "La plateforme Alfresco"
Webinar "La plateforme Alfresco"Webinar "La plateforme Alfresco"
Webinar "La plateforme Alfresco"Michael Harlaut
 
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?Narimichi Takamura
 
Memcachedの仕組みと設定
Memcachedの仕組みと設定Memcachedの仕組みと設定
Memcachedの仕組みと設定Tatsuya Akashi
 
Alfresco勉強会#28 メタデータテンプレート
Alfresco勉強会#28 メタデータテンプレートAlfresco勉強会#28 メタデータテンプレート
Alfresco勉強会#28 メタデータテンプレートJun Terashita
 
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング勲 國府田
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようShinsuke Sugaya
 
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)Yoshiro Tokumasu
 
Retour opérationnel sur la clean architecture
Retour opérationnel sur la clean architectureRetour opérationnel sur la clean architecture
Retour opérationnel sur la clean architectureRomainKuzniak
 

What's hot (20)

【第1.5回勉強会】後編 alfrescoの基本操作
【第1.5回勉強会】後編 alfrescoの基本操作【第1.5回勉強会】後編 alfrescoの基本操作
【第1.5回勉強会】後編 alfrescoの基本操作
 
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora - Benchmark ...
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora  - Benchmark ...The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora  - Benchmark ...
The Alfresco ECM 1 Billion Document Benchmark on AWS and Aurora - Benchmark ...
 
Alfresco勉強会#18 alfrescoのバックアップとリストア
Alfresco勉強会#18 alfrescoのバックアップとリストアAlfresco勉強会#18 alfrescoのバックアップとリストア
Alfresco勉強会#18 alfrescoのバックアップとリストア
 
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
 
Oracleからamazon auroraへの移行にむけて
Oracleからamazon auroraへの移行にむけてOracleからamazon auroraへの移行にむけて
Oracleからamazon auroraへの移行にむけて
 
Alfresco Content Modelling and Policy Behaviours
Alfresco Content Modelling and Policy BehavioursAlfresco Content Modelling and Policy Behaviours
Alfresco Content Modelling and Policy Behaviours
 
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
 
Sizing your alfresco platform
Sizing your alfresco platformSizing your alfresco platform
Sizing your alfresco platform
 
0からわかるAlfresco
0からわかるAlfresco0からわかるAlfresco
0からわかるAlfresco
 
C#で速度を極めるいろは
C#で速度を極めるいろはC#で速度を極めるいろは
C#で速度を極めるいろは
 
Alfresco勉強会#40 QRコードによる文書の振り分け
Alfresco勉強会#40 QRコードによる文書の振り分けAlfresco勉強会#40 QRコードによる文書の振り分け
Alfresco勉強会#40 QRコードによる文書の振り分け
 
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える足を地に着け落ち着いて考える
足を地に着け落ち着いて考える
 
Webinar "La plateforme Alfresco"
Webinar "La plateforme Alfresco"Webinar "La plateforme Alfresco"
Webinar "La plateforme Alfresco"
 
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
 
Memcachedの仕組みと設定
Memcachedの仕組みと設定Memcachedの仕組みと設定
Memcachedの仕組みと設定
 
Alfresco勉強会#28 メタデータテンプレート
Alfresco勉強会#28 メタデータテンプレートAlfresco勉強会#28 メタデータテンプレート
Alfresco勉強会#28 メタデータテンプレート
 
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
 
Retour opérationnel sur la clean architecture
Retour opérationnel sur la clean architectureRetour opérationnel sur la clean architecture
Retour opérationnel sur la clean architecture
 

Viewers also liked

Alfresco 4.0 en français
Alfresco 4.0 en françaisAlfresco 4.0 en français
Alfresco 4.0 en françaisMichael Harlaut
 
Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"Michael Harlaut
 
La gestion des archives avec Alfresco
La gestion des archives avec AlfrescoLa gestion des archives avec Alfresco
La gestion des archives avec AlfrescoSavoir-faire Linux
 
Nuxeo5 - Installation Integration Continue
Nuxeo5 - Installation Integration ContinueNuxeo5 - Installation Integration Continue
Nuxeo5 - Installation Integration ContinuePASCAL Jean Marie
 
Alfresco en quelques points : Services Tutorial
Alfresco en quelques points : Services TutorialAlfresco en quelques points : Services Tutorial
Alfresco en quelques points : Services TutorialPASCAL Jean Marie
 
Alfresco - Présentation Alfresco 3 Enterprise
Alfresco - Présentation Alfresco 3 EnterpriseAlfresco - Présentation Alfresco 3 Enterprise
Alfresco - Présentation Alfresco 3 EnterprisePASCAL Jean Marie
 
DRAFT - Alfresco - Acces & Utilisation
DRAFT - Alfresco - Acces & UtilisationDRAFT - Alfresco - Acces & Utilisation
DRAFT - Alfresco - Acces & UtilisationPASCAL Jean Marie
 
SOLLAN / La GED 3.0 : Quand le cloud et les réseaux sociaux bouleversent la g...
SOLLAN / La GED 3.0 : Quand le cloud et les réseaux sociaux bouleversent la g...SOLLAN / La GED 3.0 : Quand le cloud et les réseaux sociaux bouleversent la g...
SOLLAN / La GED 3.0 : Quand le cloud et les réseaux sociaux bouleversent la g...Sollan France
 
Présentation des travaux entre TYPO3 et Alfresco
Présentation des travaux entre TYPO3 et AlfrescoPrésentation des travaux entre TYPO3 et Alfresco
Présentation des travaux entre TYPO3 et AlfrescoYannick Pavard
 
Alfresco Day Amsterdam 2015 - New Apps and Features
Alfresco Day Amsterdam 2015 - New Apps and FeaturesAlfresco Day Amsterdam 2015 - New Apps and Features
Alfresco Day Amsterdam 2015 - New Apps and FeaturesAlfresco Software
 
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Software
 
Alfresco's Guide to Anger Management
Alfresco's Guide to Anger ManagementAlfresco's Guide to Anger Management
Alfresco's Guide to Anger ManagementAlfresco Software
 
An Alfresco Fan to John Newton (2)
An Alfresco Fan to John Newton (2)An Alfresco Fan to John Newton (2)
An Alfresco Fan to John Newton (2)PASCAL Jean Marie
 
Nuxeo5 - Continuous Integration
Nuxeo5 - Continuous IntegrationNuxeo5 - Continuous Integration
Nuxeo5 - Continuous IntegrationPASCAL Jean Marie
 
Smith & CMIS : a similar story
Smith & CMIS : a similar storySmith & CMIS : a similar story
Smith & CMIS : a similar storyPASCAL Jean Marie
 
Alfresco Android - Summit 2013 Talk
Alfresco Android - Summit 2013 TalkAlfresco Android - Summit 2013 Talk
Alfresco Android - Summit 2013 TalkPASCAL Jean Marie
 

Viewers also liked (20)

Alfresco 4.0 en français
Alfresco 4.0 en françaisAlfresco 4.0 en français
Alfresco 4.0 en français
 
Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"
 
La gestion des archives avec Alfresco
La gestion des archives avec AlfrescoLa gestion des archives avec Alfresco
La gestion des archives avec Alfresco
 
Nuxeo5 - Installation Integration Continue
Nuxeo5 - Installation Integration ContinueNuxeo5 - Installation Integration Continue
Nuxeo5 - Installation Integration Continue
 
Alfresco en quelques points : Services Tutorial
Alfresco en quelques points : Services TutorialAlfresco en quelques points : Services Tutorial
Alfresco en quelques points : Services Tutorial
 
Alfresco - Présentation Alfresco 3 Enterprise
Alfresco - Présentation Alfresco 3 EnterpriseAlfresco - Présentation Alfresco 3 Enterprise
Alfresco - Présentation Alfresco 3 Enterprise
 
DRAFT - Alfresco - Acces & Utilisation
DRAFT - Alfresco - Acces & UtilisationDRAFT - Alfresco - Acces & Utilisation
DRAFT - Alfresco - Acces & Utilisation
 
ECM - Définition Simple
ECM - Définition SimpleECM - Définition Simple
ECM - Définition Simple
 
Xslt formation-xslt
Xslt formation-xsltXslt formation-xslt
Xslt formation-xslt
 
SOLLAN / La GED 3.0 : Quand le cloud et les réseaux sociaux bouleversent la g...
SOLLAN / La GED 3.0 : Quand le cloud et les réseaux sociaux bouleversent la g...SOLLAN / La GED 3.0 : Quand le cloud et les réseaux sociaux bouleversent la g...
SOLLAN / La GED 3.0 : Quand le cloud et les réseaux sociaux bouleversent la g...
 
Présentation des travaux entre TYPO3 et Alfresco
Présentation des travaux entre TYPO3 et AlfrescoPrésentation des travaux entre TYPO3 et Alfresco
Présentation des travaux entre TYPO3 et Alfresco
 
Alfresco Day Amsterdam 2015 - New Apps and Features
Alfresco Day Amsterdam 2015 - New Apps and FeaturesAlfresco Day Amsterdam 2015 - New Apps and Features
Alfresco Day Amsterdam 2015 - New Apps and Features
 
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
 
Alfresco's Guide to Anger Management
Alfresco's Guide to Anger ManagementAlfresco's Guide to Anger Management
Alfresco's Guide to Anger Management
 
An Alfresco Fan to John Newton (2)
An Alfresco Fan to John Newton (2)An Alfresco Fan to John Newton (2)
An Alfresco Fan to John Newton (2)
 
Nuxeo5 - Continuous Integration
Nuxeo5 - Continuous IntegrationNuxeo5 - Continuous Integration
Nuxeo5 - Continuous Integration
 
Smith & CMIS : a similar story
Smith & CMIS : a similar storySmith & CMIS : a similar story
Smith & CMIS : a similar story
 
Open Source Ecm
Open Source Ecm Open Source Ecm
Open Source Ecm
 
Alfresco Android - Summit 2013 Talk
Alfresco Android - Summit 2013 TalkAlfresco Android - Summit 2013 Talk
Alfresco Android - Summit 2013 Talk
 
Alfresco Architecture
Alfresco ArchitectureAlfresco Architecture
Alfresco Architecture
 

Similar to Alfresco en quelques points - Recherche Tutorial

Formation PHP
Formation PHPFormation PHP
Formation PHPkemenaran
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP NextSQLI
 
PHP 6, la prochaine frontière
PHP 6, la prochaine frontièrePHP 6, la prochaine frontière
PHP 6, la prochaine frontièreDamien Seguy
 
Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Alexis Sukrieh
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_finalDuchess France
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_finalagnes_crepet
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsBoiteaweb
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowMathias Kluba
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Nicolas Silberman
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
PHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben AlayaPHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben AlayaMahdi Ben Alaya
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielleDavid Buros
 
Votre mission ? Découvrir Haskell et le mettre en prod
Votre mission ? Découvrir Haskell et le mettre en prodVotre mission ? Découvrir Haskell et le mettre en prod
Votre mission ? Découvrir Haskell et le mettre en prodCéline Louvet
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear phpDamien Seguy
 
Tour d’horizon de scala
Tour d’horizon de scalaTour d’horizon de scala
Tour d’horizon de scalaBenoit Wilcox
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieurFredy Fadel
 

Similar to Alfresco en quelques points - Recherche Tutorial (20)

Formation PHP
Formation PHPFormation PHP
Formation PHP
 
Arel
ArelArel
Arel
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP Next
 
PHP 6, la prochaine frontière
PHP 6, la prochaine frontièrePHP 6, la prochaine frontière
PHP 6, la prochaine frontière
 
Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des plugins
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
 
PHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben AlayaPHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben Alaya
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielle
 
Votre mission ? Découvrir Haskell et le mettre en prod
Votre mission ? Découvrir Haskell et le mettre en prodVotre mission ? Découvrir Haskell et le mettre en prod
Votre mission ? Découvrir Haskell et le mettre en prod
 
Ruby
RubyRuby
Ruby
 
Php seance1
Php seance1Php seance1
Php seance1
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear php
 
Spring 3.0
Spring 3.0Spring 3.0
Spring 3.0
 
Tour d’horizon de scala
Tour d’horizon de scalaTour d’horizon de scala
Tour d’horizon de scala
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
 

More from PASCAL Jean Marie

DRAFT - Vm Ware - Installation Nuxeo
DRAFT - Vm Ware - Installation NuxeoDRAFT - Vm Ware - Installation Nuxeo
DRAFT - Vm Ware - Installation NuxeoPASCAL Jean Marie
 
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un AlfrescoPASCAL Jean Marie
 
JM.PASCAL - This is my way...
JM.PASCAL - This is my way...JM.PASCAL - This is my way...
JM.PASCAL - This is my way...PASCAL Jean Marie
 
An Alfresco Fan to John Newton
An Alfresco Fan to John NewtonAn Alfresco Fan to John Newton
An Alfresco Fan to John NewtonPASCAL Jean Marie
 
Alfresco 3.0 Enteprise : View by a Node
Alfresco 3.0 Enteprise : View by a NodeAlfresco 3.0 Enteprise : View by a Node
Alfresco 3.0 Enteprise : View by a NodePASCAL Jean Marie
 
Alfresco in few points - Search Tutorial
Alfresco in few points - Search TutorialAlfresco in few points - Search Tutorial
Alfresco in few points - Search TutorialPASCAL Jean Marie
 
Smith & Cmis : Une histoire commune
Smith & Cmis : Une histoire communeSmith & Cmis : Une histoire commune
Smith & Cmis : Une histoire communePASCAL Jean Marie
 
Alfresco in few points - NodeService Tutorial
Alfresco in few points - NodeService TutorialAlfresco in few points - NodeService Tutorial
Alfresco in few points - NodeService TutorialPASCAL Jean Marie
 
Alfresco in few points - Node Tutorial
Alfresco in few points - Node TutorialAlfresco in few points - Node Tutorial
Alfresco in few points - Node TutorialPASCAL Jean Marie
 
Nuxeo 5 Installation with Eclipse
Nuxeo 5 Installation with EclipseNuxeo 5 Installation with Eclipse
Nuxeo 5 Installation with EclipsePASCAL Jean Marie
 
Nuxeo 5 Installation with Eclipse
Nuxeo 5 Installation with EclipseNuxeo 5 Installation with Eclipse
Nuxeo 5 Installation with EclipsePASCAL Jean Marie
 
Nuxeo5 - Code Source Installation
Nuxeo5 - Code Source Installation Nuxeo5 - Code Source Installation
Nuxeo5 - Code Source Installation PASCAL Jean Marie
 
Nuxeo5 - Installation avec Eclipse
Nuxeo5 - Installation avec EclipseNuxeo5 - Installation avec Eclipse
Nuxeo5 - Installation avec EclipsePASCAL Jean Marie
 
Nuxeo 5 - Basic Installation
Nuxeo 5 - Basic InstallationNuxeo 5 - Basic Installation
Nuxeo 5 - Basic InstallationPASCAL Jean Marie
 
Nuxeo5 - Installation Simple
Nuxeo5 - Installation SimpleNuxeo5 - Installation Simple
Nuxeo5 - Installation SimplePASCAL Jean Marie
 
Nuxeo5 - Installation Code Source
Nuxeo5 - Installation Code SourceNuxeo5 - Installation Code Source
Nuxeo5 - Installation Code SourcePASCAL Jean Marie
 

More from PASCAL Jean Marie (18)

DRAFT - Vm Ware - Installation Nuxeo
DRAFT - Vm Ware - Installation NuxeoDRAFT - Vm Ware - Installation Nuxeo
DRAFT - Vm Ware - Installation Nuxeo
 
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
 
JM.PASCAL - This is my way...
JM.PASCAL - This is my way...JM.PASCAL - This is my way...
JM.PASCAL - This is my way...
 
ECM - Simple Definition ENG
ECM - Simple Definition ENGECM - Simple Definition ENG
ECM - Simple Definition ENG
 
An Alfresco Fan to John Newton
An Alfresco Fan to John NewtonAn Alfresco Fan to John Newton
An Alfresco Fan to John Newton
 
Alfresco 3.0 Enteprise : View by a Node
Alfresco 3.0 Enteprise : View by a NodeAlfresco 3.0 Enteprise : View by a Node
Alfresco 3.0 Enteprise : View by a Node
 
Alfresco in few points - Search Tutorial
Alfresco in few points - Search TutorialAlfresco in few points - Search Tutorial
Alfresco in few points - Search Tutorial
 
Smith & Cmis : Une histoire commune
Smith & Cmis : Une histoire communeSmith & Cmis : Une histoire commune
Smith & Cmis : Une histoire commune
 
Alfresco in few points - NodeService Tutorial
Alfresco in few points - NodeService TutorialAlfresco in few points - NodeService Tutorial
Alfresco in few points - NodeService Tutorial
 
Alfresco in few points - Node Tutorial
Alfresco in few points - Node TutorialAlfresco in few points - Node Tutorial
Alfresco in few points - Node Tutorial
 
Ecm Open Source
Ecm Open SourceEcm Open Source
Ecm Open Source
 
Nuxeo 5 Installation with Eclipse
Nuxeo 5 Installation with EclipseNuxeo 5 Installation with Eclipse
Nuxeo 5 Installation with Eclipse
 
Nuxeo 5 Installation with Eclipse
Nuxeo 5 Installation with EclipseNuxeo 5 Installation with Eclipse
Nuxeo 5 Installation with Eclipse
 
Nuxeo5 - Code Source Installation
Nuxeo5 - Code Source Installation Nuxeo5 - Code Source Installation
Nuxeo5 - Code Source Installation
 
Nuxeo5 - Installation avec Eclipse
Nuxeo5 - Installation avec EclipseNuxeo5 - Installation avec Eclipse
Nuxeo5 - Installation avec Eclipse
 
Nuxeo 5 - Basic Installation
Nuxeo 5 - Basic InstallationNuxeo 5 - Basic Installation
Nuxeo 5 - Basic Installation
 
Nuxeo5 - Installation Simple
Nuxeo5 - Installation SimpleNuxeo5 - Installation Simple
Nuxeo5 - Installation Simple
 
Nuxeo5 - Installation Code Source
Nuxeo5 - Installation Code SourceNuxeo5 - Installation Code Source
Nuxeo5 - Installation Code Source
 

Alfresco en quelques points - Recherche Tutorial

  • 1. Quelle est cette fleur ? Recherche Tutorial
  • 11. Mais avant un rappel !
  • 12. Un principe… Tout est nœud ! (Everything is NODE!) Quel beau nœud je suis!
  • 13. Une règle… Alfresco fournit des services pour gérer Des noeuds Eh oui… Même moi j’ai un patron…
  • 15. J’ai cru comprendre qu’il existe plusieurs langages de recherches possibles…
  • 19. 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
  • 20. Et dans Alfresco… Comment cela fonctionne ?
  • 22. 1. La collecte Type Aspect Propriétés Mot clés ID
  • 23. 2. La conservation ID As pec Type t Proprié tés Mot clés
  • 24. 3. L’utilisation tés Proprié Mot clés Aspect
  • 25. Pour aller plus loin…
  • 26. 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é
  • 27. 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
  • 29. Il faut consulter le modèle de données ! Fichier : contentModel.xml
  • 30. Mais quel est le principe de la « tokenisation » ? Fichier : contentModel.xml
  • 31. Il s’agit de découper (ou non) un (des) mot(s) en plusieurs mots clés.
  • 32. Prenons une phrase comme exemple Il s’agit d’une présentation PowerPoint sur Alfresco et la recherche.
  • 33. 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.
  • 34. 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.
  • 35. 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.
  • 36. Par contre si on effectue une segmentation… u t en C onIl s’agit d’une présentation PowerPoint sur Alfresco et la recherche.
  • 37. 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
  • 38. Donc n’oubliez pas de vérifier le modèle de données !
  • 39.
  • 41. Un peu de théorie
  • 42. 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)
  • 44. 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 ?
  • 45. 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
  • 46. 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 ?
  • 47. Pour faire une requête sur un Aspect ASPECT:quot; <AspectQName> quot; AAhh! La c’est mieux!
  • 48. 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…
  • 50. Voici notre terrain
  • 52. 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!
  • 53. Comment faire simplement une requête lucene Se connecter avec le rôle « admin » à Alfresco Cliquer sur Puis choisir navigateur de noeuds
  • 54. Comment faire simplement une requête lucene Choisir le store : workspace://SpacesStore Dans la liste déroulante, choisir Lucene
  • 57.
  • 58. Je veux le « Folder Test »!!!!! @cm:name:’’Folder Test’’
  • 61. Pour identifier et rendre unique un nœud dans un store, on utilise … Un UUID
  • 62. La concaténation du protocole, du nom du store et de l’UUID d’un nœud forme Un NodeRef
  • 64. Je veux le « Foder Test » mais avec l’UUID ID:quot;workspace://SpacesStore/ b7ecc8b1-5edb-11dd- afdd-79a008cbb404quot;
  • 65.
  • 66. Et si on veut plusieurs critères à notre recherche ?
  • 67. On peut rajouter des opérateurs !
  • 68. 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
  • 69. 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;
  • 71. 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.
  • 72. Ajout d’une catégorie à un espace Mise en conditi on
  • 73. 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;
  • 74. 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;
  • 76. Remarque Cette zone est expérimentale et est très aléatoire suivant les expériences !
  • 77. Il existe des opérateurs spéciaux pour la recherche !
  • 78. Les opérateurs spéciaux ? Peut remplacer un caractère * Peut remplacer plusieurs caractères
  • 79. 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;
  • 80. 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;
  • 81. Remarque FIN DE ZONE EN CHANTIER! Cette zone était expérimentale!
  • 82. 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
  • 84. XPath ? • XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer. • Source w3c.org
  • 85. Mais on parle de nœuds… Pas de xml…
  • 87. Un principe… Un nœud peut être vu comme Un XML J’ai une drôle de Mirroir tête moi… XML
  • 88. La preuve dans Alfresco…
  • 91. Donc avec XPath, on peut naviguer dans les nœuds…
  • 93. Un peu de théorie
  • 94. 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…
  • 96. Vous savez jouer au jeu des 7 familles ? Eh bien les axes XPath c’est pareil!
  • 97. Dans la famille Nœud, je voudrais moi ! self
  • 99. Ensuite mes enfants! Child
  • 100. Ensuite mes frères ainés preceding-sibling
  • 101. Ensuite mes soeurs cadettes following-sibling
  • 102. Maintenant, allons plus loin dans ma famille!
  • 103. Je veux connaître toute ma descendance ! descendant
  • 104. Je veux connaître tous mes ancêtres ancestor
  • 105. Je veux tous les nœuds plus âgés preceding
  • 106. Je veux tous les nœuds plus jeunes following
  • 107. Hein… Elle est belle ma famille?
  • 108. Malheureusement, toute la famille n’est pas visible avec Alfresco… following following-sibling preceding-sibling preceding
  • 109. Les Requêt es
  • 110. Pour faire une requête sur un axe Axe::* En gros, Je veux tous les nœuds de cet axe!
  • 111. Pour faire une requête sur une propriété Axe::*[@<QName>:’<Valeur>’] Ca me rappelle un peu Lucene…
  • 112. Pour faire une requête sur un aspect Axe::*[hasAspect(’<QNameAspect>’)] L’aspect ne fait pas le nœud… Drôle non ?
  • 113. Pour faire une requête sur un type Axe::*[subtypeOf(’<QNameType>’)] Attention ! Il s’agit du type et des types fils!!!
  • 114. Pour faire une requête sur l’ensemble des propriétés et du contenu… Axe::*[contains(’<Valeur>’)] Utile, n’est il pas ?
  • 116. Voici notre terrain
  • 118. Comment faire simplement une requête lucene Se connecter avec le rôle « admin » à Alfresco Cliquer sur Puis choisir navigateur de noeuds
  • 119. Comment faire simplement une requête lucene Choisir le store : workspace://SpacesStore Dans la liste déroulante, choisir selectNodes
  • 120. Pourquoi est ce que l’on ne prend pas XPath ??
  • 121. C’est la même chose! Sauf que …
  • 122. XPath : Absolue par rapport à la SelectNodes : racine du store Relatif au nœud en cours
  • 123. Or nous on veut se placer dans un folder spécifique!
  • 125. Je veux le nœud en cours self::*
  • 127. Je veux les fils du nœud en cours descendant::*
  • 128. Je veux le père du nœud en cours parent::*
  • 129. Je veux le fils qui posséde une description « Space 1.1 Description » descendant::*[@cm:description ='Space 1.1 Description']
  • 130. A noter que les opérateurs sont aussi disponibles en XPath…
  • 131. 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')]
  • 132. 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')]
  • 133. 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!)
  • 134. J’ai maintenant plein de nœuds! Mais Où est Charlie... Enfin… le bon nœud ?
  • 135. Si vous cherchez un nœud, utilisez les services…
  • 136. En premier, pensez Alfreso Service Registry !
  • 137. 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
  • 138. 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
  • 139. 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
  • 140.
  • 141. Voilà! C’est fini pour aujourd’hui!
  • 142. Maintenant à vous de chercher… Ou rechercher!
  • 144. Pour une prochaine fois…
  • 145. Dans les prochains épisodes…
  • 146. Et si je veux partager mes nœuds ?
  • 147. Il faudra utiliser les protocoles…
  • 149. Pour aller de l’avant…
  • 150. Et pour atteindre ces objectifs…
  • 152. Alfresco en quelques points… Par JM.PASCAL www.opensourceecm.fr & www.open-source-ecm.com