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

MS SQL Server Discussion :

Moteur de recherche global


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 30
    Points : 20
    Points
    20
    Par défaut Moteur de recherche global
    Bonjour,

    Je dois réaliser un moteur de recherche global, c'est à dire une recherche permettant de remonter de la donnée avec différente structure. Ces données se trouvent sur diverses bases de données SQL-Server.

    Je pense descendre les donnée à indexer dans une structure, je ne sais pas encore trop de quel type : table sql-server, ou un produit de type Elasticsearch ou autre ...

    Vous en pensez quoi ?
    Auriez-vous des idées, de retours d'expériences à partager ?

    Je vous remercie par avance.

    Jak59

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    sans explication pas de possibilité de vous aider !

    Ces données sont elles :
    littérales ?
    numériques ?
    temporelles ?
    XML ?
    JSON ?
    Géographiques ?
    géométriques ?
    Binaires ?

    les bases sont-elles toutes identiques ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 30
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Désolé, c'est parce-que c'est encore un peu flou pour moi. La demande générale est de pouvoir faire des recherches sur tout ce que produit notre SI.....

    Je vais bientôt croiser les métiers pour préciser tout cela.


    Mais, ce que je sais aujourd'hui c'est que l'on devra à minima, sur une même recherche, remonter :

    1) Des articles, avec le prix, stock dispo , date de dispo, lien vers l'article.
    En fonction du profil de l'utilisateur connecté, la liste des articles, le prix et stock dispo peuvent varier.
    La recherche s’effectuant sur un libellé, des tags. Peut-être le prix dans une sous recherche je ne sais pas encore...

    2) Des actualités, avec un libellé, une date de publication, peut-être une image (non stockée en base), lien vers l'actualité.
    Les actualités sont à afficher en fonction du profil de l'utilisateur connecté.
    La recherche s’effectuant sur le libellé, le descriptif, et peut être le contenue qui est du html stockée en base...

    3) Des diagnostiques, libellé, descriptif, lien vers la demande de diagnostique.
    La recherche s’effectuant au moins sur le libellé, et certainement d'autres critères


    1) 2) et 3) sont stockées dans des base sql server 2016 (certaine en mode de compatibilité 100), dans des colonnes de type (varchar, decimal, datetime ect ..), pas de json ou xml.
    Les bases ont des structures différentes, elles ont des "âges" différents. Elles se trouvent toutes sur la même instance.


    Je ne souhaite pas interroger chaque base, agréger les données, et renvoyer le résultat. Je me suis dit que j'allais rassembler les données à rechercher dans un espace dédiée indexable.

    Comme les éléments à renvoyer n'ont pas la même structure, je pense à du nosql, par exemple. Mais je me demande si je n'aurais des problèmes pour mettre à jours les prix des articles par ex.
    Ou les critères de diffusion d'une actualité ect ...

    Je ferai des essais (ou des POC , pour ceux qui préfère ce terme ), si vous avez d'autres idées, pistes ect .. je suis preneur.


    Merci

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Pour le 1 seule une interrogation SQL spécifique permettra des recherches correctes, c'est à dire sans faux positif et en spécifiant chaque colonne pour la cible de la demande.

    Pour le 2, idem, sauf que pour le HTML, vous pouvez en sus faire une indexation textuelle directement dans MS SQL Server

    Pour le 3, même chose qu'en 1

    Dans tous les cas, pour certaines zones descriptives (texte long) vous pouvez utiliser l'indexation textuelle disponible dans MS SQL Server

    À me lire : https://blog.developpez.com/sqlpro/p...text_search_no

    a +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 30
    Points : 20
    Points
    20
    Par défaut
    Je me pose aussi des questions par rapport aux droits des profils, qui sont seront également à redescendre avec les datas.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Donc, vous n'avez pas le choix... Si vous mettez tout dans ElasticSearch comment ferez vous pour autoriser/interdire en fonction des privilèges SQL définit sur la base ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Points : 56
    Points
    56
    Par défaut
    Elasticsearch me semble une bonne idée.
    A noter que tu peux sécuriser les accès au moteur de recherche.

    Je te conseille un index par source que tu veux chercher.
    Elasticsearch permet de faire des recherches multi index.

    Si tu veux être efficace, utilise le même nom de champ pour les champs communs, genre date, titre, ...

  8. #8
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 30
    Points : 20
    Points
    20
    Par défaut
    Merci pour vos réponses.

    Quand je parle de descendre les droits des profils, se sont des tables décrivant des spécificités.


    Par ex :
    pour le 1) : en fonction des caractéristiques du user connecté, le prix de certains produits changent. Et ceux pour une quantité limitée.
    L'utilisateur X aurait le droit à 3 produits de la gamme toto à 75 % pour l'année 2020.

    pour le 2) : en fonction de caractéristiques du user connecté comme la taille de son entreprise. Les actualités renvoyées peuvent varier.

    pour le 3) : en fonction de caractéristiques du user connecté comme sa branche professionnelle, ou l'historique des diagnostiques déjà réalisés. Les diagnostique proposés peuvent varier.


    Du coup dans un produit comme Elasticsearch, devrais-je insérer toutes les combinaisons possibles pour chaque utilisateurs ?

    Si je pars sur du SQL-server, cela m'amènera à créer une table avec beaucoup de colonnes...
    Ou si je crée plusieurs tables, ne serai pas capable de réaliser un tri global, ou une pagination globale sans passer par des tables temporaires. J'ai peur dans ce cas d'avoir des problèmes de performance.


    Cela s'éclaircira quand j'aurais fait des essais...

    Je vous tiendrez au courant de l'avancer de la chose.

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Non, c'est pas compliqué, il suffit d'utiliser des vues (WITH CHECK OPTIONS) et de donner des privilèges sur les vues à vos utilisateurs...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  10. #10
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 30
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Du coup cela veut dire qu'il ma faut un user sql par utilisateur métier ?

  11. #11
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    C'est le mieux.

    Et pour les privilèges créer des rôles et gérer les privilèges au niveau des schémas SQL.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [1.x] Moteur de recherche "global"
    Par etoileweb dans le forum Symfony
    Réponses: 8
    Dernier message: 22/05/2012, 12h40
  2. comment faire ma base de donnée pour un moteur de recherche
    Par HoB dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 04/05/2004, 15h07
  3. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07
  4. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

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