Recherche avec Lucene

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

Recherche avec Lucene

Je suis entraîne de développer un extension pour faire des recherches personnaliser. J'utilise des webscripts et ajax.Je veux chercher les fichiers avec un certaine string (1) d'un space d'un certaine string (2).

Pour faire le premier, j'utilise le suivant:
TYPE:"{http://www.alfresco.org/model/content/1.0}folder" +PATH:"/app:company_home/cm:LesContrats//*"+@cm\:name:"*a*"

Je voulais donc ajouter un deuxième critère. Pour cela je dois avoir le parent des résultats. Je n'ai pas succéder à ajouter PARENT ou ANCESTOR. Aussi que le combiner avec une critère pour le nom du fichier.

Je peux bien sure manuellement filtres les résultats, mais il y a surement une possibilité pour faire ce que je demande dans Lucene.

Merci.
6 Replies
libman
Member II

Re: Recherche avec Lucene

J'ai le suivant dans javascript:
(1) Je cherche les folders avec le nom "LaPoste" et je l'exécute (lucene search).
(2) Je fais un for() loop ou je vais effectuer un recherche lucene qui va chercher chaque résult du premier recherche et ajoute les résultats dans une nouvelle liste.

Dans étape 2:
var objects = search.luceneSearch(folderQuery);
for(entry=0; i<objects.length; entry++){
   //model.projectQuery+=search.luceneSearch("???"+objects[i]+"???");
}
Quand j'affiche un entry je reçois:
Node Type: {http://www.alfresco.org/model/content/1.0}folder Node Ref: workspace://SpacesStore/fc48b0f4-6b7d-4f64-a124-9c17523de407
Comment est-ce que je peux chercher des fichiers (content) qui se trouvent dans cet dossier? Donc quel est le syntax pour recherche un node, du genre
"/Node Type: {http://www.alfresco.org/model/content/1.0}folder Node Ref: workspace://SpacesStore/fc48b0f4-6b7d-4f64-a124-9c17523de407/*"
du façon
+PATH:"/app:company_home/cm:Clients/*"
libman
Member II

Re: Recherche avec Lucene

OK, donc j'ai le query
TYPE:"{http://www.alfresco.org/model/content/1.0}folder" +PATH:"/app:company_home/cm:Backups/*/*"
Mais, pour faire le loop, le objects.length donne 0. Comment est-ce que je peux faire un loop avec les résultats d'un recherche Lucene:
var objects = search.luceneSearch(query);
et quelque chose comme:
for(entry=0; entry<objects.length; entry++){
   newQuery+=' PARENT:"' + objects[entry].node + '"';
}
Merci.
libman
Member II

Re: Recherche avec Lucene

OK, j'avais oublier quelque chose bête. Il marche quand même. J'ai le suivant:
backupsQuery+='TYPE:"{http://www.alfresco.org/model/content/1.0}folder" +PATH:"/app:company_home/cm:Clients/*"+@cm\\:name:"*'+args.searchString+'*"';
      
projectQuery+='TYPE:"{http://www.alfresco.org/model/content/1.0}folder" +PATH:"/app:company_home/cm:Clients/*/*"';
      
var objects = search.luceneSearch(backupsQuery);
model.projectQueryLength=objects.length;
   
for(entry=0; entry<objects.length; entry++){
   projectQuery+=' PARENT:"' + objects[entry].nodeRef + '"';
}
Mais je reçois tous les spaces de les spaces ou il fait les recherches. Quel est le problème?
libman
Member II

Re: Recherche avec Lucene

' +(PARENT:"' + objects[entry].nodeRef + '"' … et espace entre chaque élément parent (OR) et ça marche!
libman
Member II

Re: Recherche avec Lucene

Une petite question, j'ai un model avec propreté "backup_name". J'ai fait "+@cm\\:backup_name:", mais aucune résultat.

Quelqu'un a un idée?
rivarola
Active Member

Re: Recherche avec Lucene

Bonjour,

Cette propriété backup_name est-elle vraiment dans le content model d'Alfresco (préfixe cm) ? N'est-elle pas plutôt dans un modèle custom ?