Lorsqu'une requête contient un paramètre portant sur un index full-text, par défaut la pertinence relative à l'index full-text fait partie du résultat. La requête est donc de la forme suivante :
SELECTTant que cette pertinence figure dans le résultat, le paramètre de la requête s'y rapportant est obligatoire. La syntaxe suivante :
MATCH(XX, YY, ZZ) AGAINST({ParamFullText}) AS PertinenceFullText
FROM
TABLE
WHERE
AND PertinenceFullText > 0
ORDER BY
PertinenceFullText DESC
Requête.ParamFullText = Nullconduira à l'erreur :
HExécuteRequête(Requête)
Erreur dans le code SQL de la requêtePour pouvoir rendre le paramètre optionnel, il suffit de ne pas le faire figurer dans le résultat de la requête. Dans l'éditeur de requêtes il faut pour cela sélectionner "ne pas afficher" en cliquant sur l'oeil correspondant à la condition sur l'index full-text. La requête obtenue sera de la forme suivante :. Initialisation de la requête impossible. Le paramètre doit être renseigné.
SELECTComme toujours, c'est très simple ... une fois que l'on sait.
*
FROM
TABLE
WHERE
AND MATCH(XXX, YYY, ZZZ) AGAINST({ParamFullText}) > 0
3 commentaires:
Salut Elian,
pour ma part je n'ai jamais réussi à faire fonctionner la recherche Full-Text qui plante carrément mon application, même la requête en mode test dans Windev 14.
J'utilise un fichier CLIENTS avec 4 rubriques dans un Index Full-Text et la requête ci-dessous pourtant reprise de l'aide plante !
SELECT
CLIENTS.ID_CLIENT,
CLIENTS.NOM,
CLIENTS.PRENOM,
CLIENTS.SOCIETE,
CLIENTS.VILLE,
CLIENTS.NUMERO
FROM
CLIENTS
WHERE
MATCH(CLIENTS.NOM, CLIENTS.PRENOM, CLIENTS.SOCIETE,CLIENTS.VILLE)
AGAINST({PRecherche}) > 0
J'ai essayé avec toutes les mises à jour de Windev 14 et même leur exemple fourni plante !
Si tu as des infos à ce sujet ...
Damien
Depuis la publication de ce billet j'ai de très nombreux nouveaux traitements de recherches basés sur le full-text, j'en suis pleinement satisfait. Les performances sont très souvent sidérantes.
Je vous conseille de montrer votre traitement au support (il y a une options directement dans WinDev). Surtout dites leur ce qui vous arrive, pas juste que "ça plante carrément" !
pourquoi pas:)
Enregistrer un commentaire