IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

SQLite: Comment créer des requêtes FTS pour matcher les mots d'une phrase séparément ou par lots?


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Points : 69
    Points
    69
    Par défaut SQLite: Comment créer des requêtes FTS pour matcher les mots d'une phrase séparément ou par lots?
    Salut à tous,

    J'ai une application qui cherche les mots d'une phrase un par un dans une table "dictionnaire" SQLite. Ca fonctionne de façon satisfaisante mais je voudrais me renseigner sur la faisabilité d'une approche différente. Explications:

    Je souhaite intégrer des locutions, c'est à dire des groupes de mots qui ont une ligne spécifique dans le dictionnaire. Par exemple, dans la phrase: "De toute façon, ça ne marche pas" le "de toute façon" a une ligne propre dans le dictionnaire, c'est une locution. Chacun des mots qui compose cette locution a lui aussi sa ligne.

    Je souhaite savoir si c'est possible, en SQLite ou pas (mais de préférence), en FTS ou pas, de soumettre une phrase complète dans une seule requête et laisser SQLite ou autre me sortir tous les mots que la phrase contient, y compris les éventuelles locutions. Est-ce que quelqu'un a une piste?

    Merci par avance

  2. #2
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Points : 69
    Points
    69
    Par défaut
    Je vais formuler différemment, après avoir exploré un peu plus le problème.

    Si je souhaite savoir quelles sont les lignes de ma database qui contiennent un mot, je peux faire quelque chose comme
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from MaDatabase where INSTR(MaCellule, 'MonMot');

    Mais comment puis-je faire pour que lorsque je soumets une phrase, je récupère toutes les cellules dont la valeur correspond à une partie de ma phrase?

    Par exemple, si je cherche: 'De toute façon, ça ne marche pas' , je récupère les cellules suivantes:
    -De
    -toute
    -façon
    -De toute façon
    -ça
    -ne
    -marche
    -pas

    Je cherche à savoir s'il existe des méthodes/structures/outils BDD pour faire produire ce genre de résultats sans avoir à chercher tous les éléments séparés par un espace (la virgule en aurait un avant) et tester toutes les combinaisons de mots contigus (de 2 à la totalité de la phrase).

    J'ai pensé à ajouter un champ pour chaque mot simple qui compose une locution existante, mais avant de trouver un moyen de contourner le problème comme celui-ci, je veux savoir s'il existe quelque chose pour faire ça du côté BDD.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Points : 69
    Points
    69
    Par défaut
    J'ai trouvé

    Il suffit d'inverser les termes de INSTR. Exemple:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
     select * from MyDB where INSTR('De toute façon , ça ne marche pas', content)

    Le seul souci, c'est que forcément, si je cherche 'pas' il me sort aussi 'passoire'. Je demande naïvement: est-ce qu'il existe un moyen de régler ça au niveau de la requête?

Discussions similaires

  1. [Débutant] Comment déclarer des variables publiques pour tous les formulaires
    Par Claude_Azoulai dans le forum C#
    Réponses: 5
    Dernier message: 09/05/2013, 17h50
  2. Réponses: 2
    Dernier message: 12/12/2012, 13h24
  3. Créer des noms courts pour tout les fichiers
    Par Antonin21 dans le forum Windows XP
    Réponses: 0
    Dernier message: 19/02/2012, 18h02
  4. Réponses: 1
    Dernier message: 22/12/2005, 09h39
  5. Comment créer des requêtes parametres
    Par bolbol dans le forum Access
    Réponses: 1
    Dernier message: 08/11/2005, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo