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

Outils Firebird Discussion :

Sphinx Search pour Firebird


Sujet :

Outils Firebird

  1. #1
    Membre régulier
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    227
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 227
    Points : 113
    Points
    113
    Par défaut Sphinx Search pour Firebird
    Bonjour,

    J'essaye de configurer Sphinx Search pour une recherche de mots clefs dans des BLOB Text d'une base Firebird.

    Le site de Sphinx propose de la doc mais malgré tout kje n'y arrive pas

    La première est l'installation du service sous Windows.

    Cette étape se passe bien mais c'est ensuite que ça se complique. Je n'arrive pas à paramétrer mon fichier de config pour FB.

    Quelqu'un aurait-il déjà configuré avec succès Sphinx avec Firebird ?

    Merci pour vos retours.

    Lefju
    FB 3.0 / Sphinx v2.2.11 / Win 7

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    Bonjour.

    Je ne connais pas du tout Sphinx Search mais en parcourant la doc on remarque qu'aucun driver Firebird n'est implémenté, uniquement pour MySQL, PostgreSQL, SQLServer et ODBC. En revanche sur le site de Firebird on trouve divers éléments concernant Sphinx Search qui pourront certainement vous aider.
    https://www.firebirdsql.org/en/sphinx-full-text-search/

  3. #3
    Membre régulier
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    227
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 227
    Points : 113
    Points
    113
    Par défaut
    Bonjour ddaime,

    Merci pour ton message.

    FB doit fonctionner avec Sphinx (ou inversement) car FB le mentionne sur son site, je pense juste qu'il n'y a pas beaucoup de ressources à ce sujet.

    Le problème vient de la configuration de mon fichier config Sphinx pour lequel je ne sais pas comment lui paramétrer Firebird.

    Le paramétrage de ce fichier sphinx.conf.txt est obscur

  4. #4
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonjour,

    Justement pourriez-vous m'eclairer sur le principe de Sphinx ?
    Es-ce qu'on doit faire des appels de fonctions de recherche au sein de l'app client comme delphi par exemple ?
    Merci
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  5. #5
    Membre régulier
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    227
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 227
    Points : 113
    Points
    113
    Par défaut
    Bonjour Freud,

    Désolé pour le temps de réponse. Je n'ai jamais utilisé Sphinx alors ce que je vais dire peut être imprécis: Sphinx est un service windows (dans mon cas) qui tourne en permanence et dans l'app client on effectue une requête sur le champ scruté par le service.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 934
    Points
    40 934
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Comme l'indique ddaime il faut déjà que Firebird soit implémenté ce qui n'est le cas que pour le lien chargement qu'il propose

    FB doit fonctionner avec Sphinx (ou inversement) car FB le mentionne sur son site, je pense juste qu'il n'y a pas beaucoup de ressources à ce sujet.
    Oui mais c'est parce que les deux auteurs du lien précédemment cité ont fait les modifs nécessaires sur une version de Sphinx. Donc ce n'est pas le Sphinx standard et encore moins le dernier en date. Sur le même lien que j'avais précédemment indiqué il y a d'autres biais par exemple avec Lucene.

    m'eclairer sur le principe de Sphinx ?
    Ce que je comprend de ces outils : Tous deux sont des outils de recherche à l'intérieur de fichiers. Les mots clés définis par la recherche lancée sont alors indexés dans une base de données. Sphinx version "normale" propose alors de le faire dans une base MySQL ou PostGres, pour ce qui est de Firebird c'est avec la version particulière citée par ddaime. Lucene, je n'ai pas trop compris où étaient mis mots clés et index, à priori je dirais dans un fichier qui peut être ensuite traiter pour l'intégrer dans une base quelconque (j'ai trouvé quelques sources et exemples VB mais je n'ai pas approfondi). Dans les deux cas il y a des DLL ou services à installer.

    Ce que je ne comprends pas : c'est cette histoire de mots clés que l'on passe pour le document (du moins en ce qui concerne Lucene car je n'ai pas fait trop de recherches avec Sphinx)

    Ce que je déduis :
    Le principe, il faut étudier un document et rechercher s'il contient les mots clés ou non .
    Les expressions régulières me semblent l'outil idéal pour ce genre de choses (dans un fichier texte c'est facile, dans un fichier avec mise en page docx c'est un peu plus délicat mais faisable), je pense que l'on peut même compter l’occurrence d'un mot.

    Toutefois pour obtenir un référencement de documents en fonction de mots clés il faut tout d'abord établir un dictionnaire de ces derniers.
    Là où cela se corse ce sont les règles d'exploitation par exemple un mot clé peut être un verbe i.e Rêver mais si le document contient ce même verbe conjugué que faire ?
    Toujours est-il qu'il me semble que si l'on a ce dictionnaire de mots il est envisageable de faire ses propres UDF et procédures (si l'on s'en tient à Firebird) pour que, à l'occasion de l'insertion d'un document dans une table, une table d'indexation de document soit remplie

    Bricolage :
    Une table DICTIONNAIRE(IDUNIQUE BIGINT,MOT VARCHAR(60)) // oui il y a plus long que anticonstitutionnellement
    Une table INDEXDOCS(IDUNIQUE BIGINT,IDDOC BIGINT,IDMOT BIGINT) // avec relation entre tables
    Une table TYPEDOCS(IDUNIQUE BIGINT,INTITULE VARCHAR(30),UDFNAME VARCHAR(30)); // A voir
    Une table DOCUMENTS(IDUNIQUE BIGINT,TYPEDOC SMALLINT,CONTENU BLOB SUBTYPE 2) // le type de doc est absolument nécessaire pour que cette colonne soit utilisée pour le mode de recherche, un docx devra d'abord être compressé avant d'être traité plus ou moins comme un fichier texte.
    Un trigger after insert permettra de faire les recherches en fonction du dictionnaire et donc de remplir la table indexdocs
    c'est là ou deux (s'il n'y a que fichiers de type Texte et DOCX) UDF sont alors à mettre en oeuvre ! << c'est là ce que fait Sphinx pour les fichiers TXT et HTML semblerait-il ?

    mais peut-être n'ai-je rien compris
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonsoir tout le monde,

    Citation Envoyé par lefju cabro
    Désolé pour le temps de réponse.
    Pas de soucis

    Maintenant j'ai bien compris que Sphynx fonctionne en tant que service windows.

    Merci SergioMaster pour toutes ces informations.

    Citation Envoyé par SergioMaster
    ...il est envisageable de faire ses propres UDF....
    Pour utiliser le service Sphynx je suppose.....???
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 934
    Points
    40 934
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par freud Voir le message
    Pour utiliser le service Sphinx je suppose.....???
    Non, pour faire un peu le même boulot que Sphinx plutôt.

    La question soulevée au départ
    le hic est de pouvoir analyser un .docx donc dans un BlobBinaire car fichier compressé or Sphinx peut traiter des fichiers qui sont sous forme de texte (TXT,RTF,HTML,XML .... en bref tout fichier pouvant s'ouvrir avec notepad)

    Une recherche dans un blob sub_type texte est facile : il suffit d'utiliser les expressions régulières déjà proposées par Firebird avec SIMILAR TO. Toutefois, utiliser une indexation de mots clés est plus que judicieuse si l'on doit traiter beaucoup de documents (sans parler du fait que cela permet de récupérer des statistiques sur ces mêmes mots-clés). Un bémol, un fichier texte simple ne contient aucun markup cas d'un HTML ou XML, ni informations de mise en forme i.e Fontes dans un RTF; je donne un exemple : un mot clé est Tahoma (ancien nom de Tacoma USA) pas de chance si mon document RTF utilise la fonte de ce nom mais ne cite jamais la ville dans le texte, SIMILAR TO va quand même nous le ressortir !

    Mais impossible d'utiliser les expressions régulières de Firebird dans un 'binaire' surtout dans le cas particulier du format (soit-disant portable) docx (le texte à analyser étant dans un sous répertoire d'un fichier zip).

    Donc quand je parlais d'UDF, je parlais bien d'un analyseur particulier (certainement beaucoup moins puissant que ce que ferait Sphinx, Lucene ou autre moteur du même acabit qui sont déjà prévus pour faire la part des choses entre le texte et les "mises en formes" indiquées plus haut) mais d'UDF qui permettrait d'extraire le document d'un docx pour ensuite l'analyser.

    A.M.H.A en théorie, c'est faisable, dans la limite d'utilisation de règles simples (pas de gestion de verbes conjugués)
    Reste à savoir si cela ne mettrait pas le serveur à genoux en cas d'analyse de documents avec un dictionnaire de mots clés important et d'ajouts très rapides.
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonjour tout le monde,

    Bon, pour le principe de fonctionnement de Sphynx c'est clair mais ce sera assez lourd pour mon application de gestion de candidats/CV. Pour ma part, je crois que quelque tables avec insertion de mots clés une table MotCles depuis le client fera l'affaire.
    Merci SergioMaster.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  10. #10
    Membre régulier
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    227
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 227
    Points : 113
    Points
    113
    Par défaut
    Merci SergioMaster pour les explications, je vais également tenter de me passer de Sphinx

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 934
    Points
    40 934
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Attention aux réserves que j'ai faite.

    Ceci étant, je me suis "amusé" avec les expressions régulières sur le document du docx
    il faut en premier lieu remplacer certains markups , ce qui peut se faire via les expressions régulières
    j'ai déjà trouver celles-ci, mais il en reste encore
    remplacer '<w\:t\sxml\:space\="preserve"\>|<w:r>|</w:r>' par null ou un espace
    il est ensuite assez facile d'obtenir que le contenu texte (sans mise en forme) avec une nouvelle expression
    (?<=\<w:t\>).*?(?=\</w:t\>)
    toutefois il y a encore du déchet quelque fois, du à la mise ne page, des mots sont coupés
    L'expression de remplacement est donc encore à travailler.

    Ceci étant, le document de test que j'utilise est un document avec justement beaucoup de spécificités que la plupart des utilisateurs n'utilisent pas (loi du 80/20)

    En conclusion : AMA c'est faisable

    pour les textes , l'utilisation d'une procédure avec SIMILAR TO suffit
    pour les docx , il faut faire une UDF
    pour des textes avec mise en forme tels que les document RTF je n'ai pas vraiment vérifier la pertinence d'une UDF (enfin s'il faut oter les zone entre {} si bien sûr)
    pour des HTML/XML encore une UDF (bon ces deux là ont quand même des standards) sauf s'il s'agit de faire une analyse de syntaxe auquel cas : comme les documents texte.

    Je serais assez heureux de savoir ce que cela peut donner en terme de vitesse si un lecteur met ça en place
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  12. #12
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonsoir tout le monde,

    Citation Envoyé par SergioMaster
    Je serais assez heureux de savoir ce que cela peut donner en terme de vitesse si un lecteur met ça en place
    Pour la quantité d'informations que vous nous prodiguer c'est gênant de ne pas pouvoir le faire mais j'ai déjà les mains dans le camboui et m'en sort pas par manque de temps. Et merci encore SergioMaster.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modifier script sql oracle pour firebird
    Par bud1703 dans le forum SQL
    Réponses: 2
    Dernier message: 25/08/2005, 16h32
  2. Connexion derrière un proxy pour Firebird ???
    Par .:morgoth:. dans le forum Connexion aux bases de données
    Réponses: 8
    Dernier message: 17/02/2005, 10h32
  3. composants delphi pour firebird
    Par devalender dans le forum Débuter
    Réponses: 1
    Dernier message: 07/02/2005, 13h24
  4. Création d'une GDB pour Firebird
    Par ada_b dans le forum Débuter
    Réponses: 2
    Dernier message: 03/12/2004, 08h08

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