OK. Je n'ai pas tout compris, mais je me permet quelques remarques ici :
- Quand on voit une requête du type champ:*, il faut savoir que c'est
très couteux côté application. Le mieux est de chercher une solution au
niveau de l'indexation. Dans votre requête "+titre:* -lien:* -parent:*",
on comprends que vous voulez les documents qui on un titre mais pas de
lien ni de parent. Vous n'avez pas le moyen de créer un champ booléen
qui fait le travail ?
- Pourquoi avez-vous besoin d'une requête complexe quand vous faites :
<sdx:complexQuery base="notices" qidParam="qid">
<sdx:simpleQuery queryString="queryRoot"/>
</sdx:complexQuery>
CWIKLINSKI Johan - CETE NP/DIODé/PANDOC a écrit :
Merci de votre réponse rapide :)
Toutefois, mon problème ne se situe pas là (je me suis mal exprimé). La valeur provient
d'une requête dans la même page xsp qui me retourne plusieurs résultats (mes
"catégories").
Pour chacun des résultats, il faudra que je lance une nouvelle requête.
Dans la structure des notices, il existe plusieurs niveaux de catégories, comme
une arborescence ; je cherche à récupérer uniquement les deux premiers niveaux,
et pas les niveaux suivants.
Les catégories parentes sont celles dont le champ "parent" n'est pas renseigné, ce que j'ai appelé
"enfants directs" sont les seules catégories dont le champ "parent" correspond à une
catégorie parente.
Actuellement, j'utilise le code suivant, qui semble correspondre à mon besoin (je suis en train de tester), cela devrait être plus explicite :
Pour récupérer les catégories parentes :
String queryRoot = "+titre:* -lien:* -parent:*";
<sdx:complexQuery base="notices" qidParam="qid">
<sdx:simpleQuery queryString="queryRoot"/>
</sdx:complexQuery>
<sdx:results/>
String queryChild = "";
String[] parents = sdx_results.getDocIds();
<sdx:show/>
J'ai donc les identifiants des catégories parentes, je cherche ensuite les "enfants
directs" comme suit :
for(int i = 0 ; i < parents.length ; i++ ){
queryChild = "+titre:* -lien:* +parentid:"+parents[i];
<sdx:complexQuery base="notices" qidParam="qid">
<sdx:simpleQuery base="notices" queryString="queryChild"/>
</sdx:complexQuery>
}
Mes tests ne sont pas encore finis, mais il semble que les résultats soient
ceux que j'attendais.
Merci,
Johan Cwiklinski - Pandoc
-----Message d'origine-----
De : [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
]De la part de Malo Pichot
Envoyé : mardi 26 juin 2007 10:44
À : sdx-users@nongnu.org
Objet : Re: [sdx-users] Requête depuis un résultat de requête
Bonjour,
Je ne sais pas si je comprends bien le problème. Qu'est-ce que
"enfants directs" ? D'ici, je pense que vous cherchez à faire un
sdx:terms :
http://www.nongnu.org/sdx/docs/html/doc-sdx2/fr/reference/actions/recherche/index.html#sdx_terms
Si vous souhaitez avez "categorie_1"
<sdx:terms field="categorie" value="categorie_1" />
renverra tous les identifiants des documents appartenant à cette catégorie.
Pour une XSP terms.xsp contenant <sdx:terms />. Une URL
http://[...]/terms.xsp?field=categorie&value=categorie_1 renverra ce
même résultat. Vous pouvez testez ça directement avec l'API-URL de SDX :
http://[...]/sdx/api-url/terms?appbypath={monAppli}&field=categorie&value=categorie_1
CWIKLINSKI Johan - CETE NP/DIODé/PANDOC a écrit :
Bonjour,
Voilà mon problème :
J'ai une requête qui me renvoie des "catégories".
Je cherche à interroger la base afin de récupérer, pour chaque catégorie, les
enfants directs.
Est-il possible de faire cela avec les tags, ou faut-il utiliser l'API ?
Je ne vois pas quelles méthodes utiliser dans ce cas, toute piste serait la
bienvenue.
D'avance merci,
Johan Cwiklinski - Pandoc
_______________________________________________
sdx-users mailing list
sdx-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/sdx-users
--
Malo
_______________________________________________
sdx-users mailing list
sdx-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/sdx-users