Author: jcouteau Date: 2012-01-06 15:46:27 +0100 (Fri, 06 Jan 2012) New Revision: 1288 Url: http://nuiton.org/repositories/revision/wikitty/1288 Log: Corrections de doc Modified: trunk/src/site/rst/user/query.rst Modified: trunk/src/site/rst/user/query.rst =================================================================== --- trunk/src/site/rst/user/query.rst 2012-01-06 14:19:35 UTC (rev 1287) +++ trunk/src/site/rst/user/query.rst 2012-01-06 14:46:27 UTC (rev 1288) @@ -5,10 +5,10 @@ Wikitty permet de rechercher parmis les entités enregistrées tout en fournissant les fonctionalités de pagination. Pour cela vous pouvez construire programmatiquement vos recherches en utilisant WikittyQueryMaker ou de façon -textuel en utilisant WikittyQueryParser. +textuelle en utilisant WikittyQueryParser. -Au final vous obtenez dans les deux cas un WikittyQuery utilisable pour vos -recherche pour les méthodes WikittyClient.findXXXX. +Au final, vous obtenez dans les deux cas un WikittyQuery utilisable pour vos +recherche par les méthodes WikittyClient.findXXXX. Utilisation via WikittyClient ----------------------------- @@ -20,13 +20,13 @@ - findAllByQuery(Class<E>, Query): WikittyQueryResult<E> - findByQuery(Class<E>, Query): E -Dans les deux premières méthodes les résultats seront retournés de façon brut +Dans les deux premières méthodes les résultats seront retournés de façon brute sous forme de String. Si le résultat représente une entité, le String sera son id. Si le résultat représente une Date, la date sera la valeur tel que retournée -par la la méthode WikittyUtil.toString(Date) +par la méthode WikittyUtil.toString(Date) Les deux dernières méthodes essaient de convertir le résultat en objet de la -classe passée en paramètre. Par exemple si vous savez que le résultat sont des +classe passée en paramètre. Par exemple si vous savez que les résultats sont des valeurs numeriques vous pouvez passer Number.class en argument. @@ -51,7 +51,7 @@ .eq(User.ELEMENT_FIELD_USER_FIRSTNAME, "benjamin") .end(); -Le end() indique que la condition est fini et que l'on souhaite la query +Le end() indique que la condition est finie et que l'on souhaite la query Vous pouvez aussi utiliser WikittyQueryParser pour faire le même travail, mais il est plus sûr d'utiliser le WikittyQueryMaker tant que vous le pouvez:: @@ -59,7 +59,7 @@ WikittyQueryParser parser = WikittyQueryParser.parse( "User.lastname=poussin User.firstname=benjamin"); -S'il n'y a pas d'opérateur entre deux contrainte un AND est automatiquement +S'il n'y a pas d'opérateur entre deux contraintes un AND est automatiquement ajouté. Les contraintes disponibles @@ -71,7 +71,7 @@ champs texte, il est possible d'ajouter des "*" en début et en fin de la chaîne de recherche pour faire l'équivalent d'un startsWith ou endsWith. Si vous utilisez WikittyQueryMaker les méthodes sw (startsWith) et ew (endsWith) - font se travail pour vous.:: + font ce travail pour vous.:: WikittyQuery q = new WikittyQueryMaker().eq(User.ELEMENT_FIELD_USER_LASTNAME, "poussin").end(); WikittyQuery q = new WikittyQueryMaker().eq(User.ELEMENT_FIELD_USER_LASTNAME, "*ssin").end(); @@ -116,7 +116,7 @@ WikittyQuery q = WikittyQueryParser.parse("extension!=User"); -* ContainsAll d'extension : extContainsAll - Vérifie si un Wikitty possède tous +* ContainsAll d'extension : extContainsAll - Vérifie si un Wikitty possède toutes les extensions:: WikittyQuery q = new WikittyQueryMaker() @@ -124,7 +124,7 @@ WikittyQuery q = WikittyQueryParser.parse("extension=[User, Employee]"); -* Égalité d'extension : ideq - Vérifie qu'un Wikitty porte l'identifiant:: +* Égalité d'identifiant : ideq - Vérifie qu'un Wikitty porte l'identifiant:: WikittyQuery q = new WikittyQueryMaker() .ideq(User.EXT_USER).end(); @@ -140,7 +140,7 @@ WikittyQuery q = WikittyQueryParser.parse("id!=1234567-1234-1234567"); * Similitude : like - Vérifie qu'une chaîne de caractère est égale à une autre - sans tenir compte de la case ni des accents. Cette opérateur ne recherche que + sans tenir compte de la casse ni des accents. Cette opérateur ne recherche que de façon textuelle, vous pouvez ajouter des '*' en début et fin de d'expression:: WikittyQuery q = new WikittyQueryMaker() @@ -152,7 +152,7 @@ WikittyQuery q = WikittyQueryParser.parse("User.fistname LIKE *lene"); * Non similitude : unlike - Vérifie qu'une chaîne de caractère n'est pas égale à une autre - sans tenir compte de la case ni des accents. Cette opérateur ne recherche que + sans tenir compte de la casse ni des accents. Cette opérateur ne recherche que de façon textuelle, vous pouvez ajouter des '*' en début et fin de d'expression:: WikittyQuery q = new WikittyQueryMaker() @@ -235,7 +235,7 @@ * Mot-clé : keyword - Vérifie si la valeur est présente dans n'importe quel champ de n'importe quelle extension en fulltext (pas de prise en compte de la - case out des accents).:: + casse ou des accents).:: WikittyQuery q = new WikittyQueryMaker() .keyword("partout").end(); @@ -277,11 +277,12 @@ * Les noeuds à sous requêtes permettent de faire des requêtes complexes. * Non : not - Résultat inverse de la sous-requête. Permet de faire la négation - d'une condition. On ne peut ajouter qu'un condition dans un not, il faut - donc ajouter en premier un or ou un and pour mettre plusieurs condition:: + d'une condition. On ne peut ajouter qu'une condition dans un not, il faut + donc ajouter en premier soit un or, soit un and pour mettre plusieurs + conditions:: WikittyQuery q = new WikittyQueryMaker() - .not().rFalse().end(); // condition toujours vrai + .not().rFalse().end(); // condition toujours vraie WikittyQuery q = WikittyQueryParser.parse("NOT(FALSE)"); @@ -311,7 +312,7 @@ * Requête associée : in - Permet d'effectuer des jointures. Cette opérateur lie deux requêtes entres elle. Le résultat d'un requête est utilisé comme un - containsOne dans l'autre. La requête suivante recherche tous les employers + containsOne dans l'autre. La requête suivante recherche tous les employés en CDI, mais seulement ceux dont le nom de leur entreprise contient 'lutin'.:: WikittyQuery q = new WikittyQueryMaker() @@ -400,7 +401,7 @@ Pour la recherche sur les arbres 3 pseudos champs sont utilisables -- rootNode: champs contenant l'id de la racinde du nom +- rootNode: champs contenant l'id de la racine du noeud - pathNode: champs contenant tous les id de noeuds pour atteindre un noeud (du root au noeud lui même inclus) - depthNode: entier indiquant la profondeur d'un noeud (root=1) @@ -461,10 +462,10 @@ * Fermeture d'un noeud: close. Lorsqu'on ouvre un element a sous noeud comme or, and, not, in, select, il faut pouvoir le fermer pour continuer la construction de la condition. Pour cela on utilise close(), qui ferme la - derniere condition non terminal.:: + dernière condition non terminale.:: WikittyQuery q = new WikittyQueryMaker() - .and().or()....close(/*fermeture du or*/).close(/*fermeture du or*/) + .and().or()....close(/*fermeture du or*/).close(/*fermeture du and*/) .not().and().....end(/*fermeture de tous les elements non ferme (and, not)*/); * conversion de type: Il est possible de passer en argument des méthodes des @@ -480,9 +481,9 @@ WikittyQuery q = new WikittyQueryMaker() .wikitty(monWikitty).end(); -* Condition: Il est aussi possible d'ajouter toutes une condition déjà +* Condition: Il est aussi possible d'ajouter toute une condition déjà construite pour l'intégrer à une nouvelle. Dans ce cas cette condition est - prise comme une boîte noir, c'est dire comme une condition terminal.:: + prise comme une boîte noire, c'est à dire comme une condition terminale.:: WikittyQuery qold = ... @@ -492,7 +493,7 @@ Spécificité de WikittyQueryParser --------------------------------- -Vous pouvez ajouter des alias pour simplifier l'écriture de certain requête. +Vous pouvez ajouter des alias pour simplifier l'écriture de certaines requêtes. Par exemple si vous utilisez souvent une longue requête comme:: @@ -513,7 +514,7 @@ WikittyQuery q = parser.parseQuery( "MyExt.field=toto AND MyAlias"); -Elle sera transformée avant d'être parser en:: +Elle sera transformée avant d'être parsée en:: WikittyQuery q = parser.parseQuery( "MyExt.field=toto AND id IN (SELECT WikittyTreeNode.attachment" @@ -533,7 +534,7 @@ WikittyQuery q = parser.parseQuery( "MyExt.field=toto AND MyAlias(OtherTree, OtherBranch)"); -Elle sera transformée avant d'être parser en:: +Elle sera transformée avant d'être parsée en:: WikittyQuery q = parser.parseQuery( "MyExt.field=toto AND id IN (SELECT WikittyTreeNode.attachment" @@ -549,16 +550,16 @@ WikittyQuery q = WikittyQueryParser.parse("simple OR \"la jolie chaine que je recherche\""); Il est possible de faire une recherche sur un nom de champs qui peut⁻être utilisé -par différente extension. Pour cela on remplace le nom d'extension par '*':: +par différentes extensions. Pour cela on remplace le nom d'extension par '*':: WikittyQuery q = new WikittyQueryMaker() .eq(new ElementField(ElementField.ALL_EXTENSION, "name"), "poussin").end(); WikittyQuery q = WikittyQueryParser.parse("*.name==poussin"); -Dans ce cas la recherche est une recherche fulltext qui peut-être utilisé -quelque soit le type du champs. Mais si vous souhaitez restrainte la recherche -au champs d'un certain type vous pouvez ajouter le type à la fin.:: +Dans ce cas la recherche est une recherche fulltext qui peut-être utilisée +quel que soit le type du champs. Mais si vous souhaitez restraindre la recherche +aux champs d'un certain type vous pouvez ajouter le type à la fin.:: Date _1950 = new Date(...); Date _1960 = new Date(...); @@ -581,7 +582,7 @@ Les autres paramètres d'une requête ----------------------------------- -* Nom : name - Nommage de la requêtes. +* Nom : name - Nommage de la requête. * Premier index : first - Permet de définir le premier index à retourner. Principalement utilisé pour la pagination. @@ -592,10 +593,10 @@ * facetMinCount: les topics des facettes ayant moins d'occurence que cette valeur ne sont pas retournés -* facetLimit: les facettes ramenent au plus se nombre de topics +* facetLimit: les facettes ramènent au plus ce nombre de topics -* facetSort: determine l'ordre de tri des topics, il est possible de trier sur - le nombre d'occurence du topic ou le nom du topic +* facetSort: détermine l'ordre de tri des topics. Il est possible de trier sur + le nombre d'occurences du topic ou le nom du topic * facetExtension indique de créer une facette sur les extensions des wikitties @@ -603,7 +604,7 @@ * facetQuery indique de créer une facette grace a une condition. Par exemple au lieu de creer une facette sur Product.price qui retournerait trop de topics - il est préférable de créer plusieur facetQuery pour regrouper des prix:: + il est préférable de créer plusieurs facetQuery pour regrouper des prix:: query.addFacetQuery("0-5", new WikittyQueryMaker().bw("Product.price", 0, 5)); query.addFacetQuery("5-10", new WikittyQueryMaker().bw("Product.price", 5, 10));