Requête lucene dans un dashlet

cancel
Showing results for 
Search instead for 
Did you mean: 
clem
Member II

Requête lucene dans un dashlet

Bonjour,

J'ai un petit problème quant à l'exécution d'une requête lucene au sein du code javascript d'un dashlet que je suis entrain de développer.
La requête est bonne car quand je la teste dans le Node Browser, je récupère bien les documents que je veux.
J'ai bien pensé aux doubles backslashs à ajouter pour éviter les problèmes de compréhension dans le javascript et lorsque j'exécute ma requête adaptée dans un "Run Action" d'Alfresco je récupère bien les bons documents.

Afin de minimiser les facteurs d'erreurs, j'ai testé différentes requêtes, des simples et des plus complexes, ne nécessitant pas de doubles backslash etc… mais rien n'y fait, l'exécution se bloque toujours au niveau de la requête.

Voici la partie du code de mon fichier javascript contenant la requête :


    var annee =2008;
    var jour = 01;
    var mois = 01;

      onAfficherClicked: function Archivage_onAfficherClicked(p_oEvent)
      {
      var rq = 'PATH:"/app:company_home/st:sites/cm:compta/cm:documentLibrary//*"AND @cm\\:created:[';
      rq = rq +"2008\\-01\\-01T00:00:00 TO "+annee+"\\-"+mois +"\\-"+jour+"T00:00:00]";
                alert(rq);
      var docs = search.luceneSearch(rq);
      alert("recherche effectue");

alert(rq); s'exécute mais alert("recherche effectue"); ne s'affiche jamais et le reste du code n'est bien entendu pas exécuté.

Il y a t-il quelque chose à ajouter afin de pouvoir effectuer une requête lucene dans le code d'un dashlet ? Une importation ou quoi que ce soit ?
Serait-ce une erreur toute bête ?

Merci de votre aide.


Clem
6 Replies
cleseach
Active Member II

Re: Requête lucene dans un dashlet

Bonjour,

Votre code ressemble fort à du JavaScript pour le client.
Les API JavaScript Alfresco sont disponibles uniquement côté serveur.

L'objet "search" n'existe donc pas pour votre navigateur (le client), qui ne sait donc pas comment traiter "search.luceneSearch(rq)".
Une erreur est levée, le script s'interrompt et votre dernier appel "alert" n'est pas exécuté.

C'est troublant au début de disposer du même langage sur le client et le serveur, mais avec un peu d'attention, on finit toujours par s'y retrouver.

Cordialement,
Charles Le Seac'h
clem
Member II

Re: Requête lucene dans un dashlet

Okay, merci beaucoup pour la réponse. C'est vrai que je m'y perds un peu entre le code côté client et côté serveur…
Cependant, si la méthode search.luceneSearch() n'est pas comprise par le navigateur, comment dois-je faire pour passer ma requête lucene ?

Merci beaucoup pour vos réponses.


Clem
cleseach
Active Member II

Re: Requête lucene dans un dashlet

Bonjour,

Pour jouer votre requête, tout va dépendre de la technologie retenue pour la création de la dashlet. On peut en effet utiliser Java, FreeMarker, JavaScript (le tout appelé depuis une page jsp).
Le choix est vaste et les API sont différentes.

Dites-nous en plus sur votre dashlet et à quoi il ressemble aujourd'hui pour bénéficier d'une réponse pertinente.

Cordialement,
Charles Le Seac'h
clem
Member II

Re: Requête lucene dans un dashlet

Bonjour,
Le dashlet que je tente de créer est un simple dashlet d'archivage de fichiers.
L'utilisateur sélectionne le jour, le mois et l'année via trois "MenuButton" puis clique sur un bouton de validation. A ce moment là, la requête lucène est sensée renvoyer tous les fichiers dont la date de création est antérieure à celle sélectionnée par l'utilisateur. Les fichiers sont alors déplacés à un autre endroit.

Concernant la technologie utilisée, j'avoue y être un peu aller à tâtons en m'aidant des exemples de dashlets du Dr. Q (http://drquyong.com/myblog/?cat=15) et du code du dashlet "Site Activities".
Le dashlet est composé d'un fichier des chaque extensions suivantes :
- .css,
- .get.desc.xml,
- .get.head.ftl,
- .get.html.ftl,
- .get.properties,
- .js
- .get.js

J'espère que cela vous éclaire un petit peu. Si l'utilisation d'une simple requête lucène au sein du code .js n'est pas possible je suis ouvert à toutes propositions, quel est la technologie la plus efficace pour récupérer un ou un ensemble de noeuds ?
Quelle est la technique à suivre pour utiliser du jsp ? Est-ce du code intégré dans les fichiers cités ci-dessus ? Est-ce un nouveau fichier ? Si oui, où doit-il être placé ?

Merci pour vos réponses et votre patience.

Clem
cleseach
Active Member II

Re: Requête lucene dans un dashlet

Bonjour,

L'exemple Site Activities est parfait pour ce que vous souhaitez faire.
En clair, votre dashlet va commencer par afficher votre formulaire HTML pour saisir la date et, lors de la validation, un webscript de recherche va être appelé; ce webscript va exécuter votre recherche et produire le résultat à afficher dans le contenu de votre dashlet.

Cordialement,
Charles Le Seac'h
clem
Member II

Re: Requête lucene dans un dashlet

Merci beaucoup.
La réponse se trouve donc dans le code de Site Activities, je vais l'examiner plus en détails.

Encore merci pour vos réponses.

Clem