2017-09-25 3 views
0

Je suis dans le besoin pour une représentation efficace de json dans le serveur sql afin que je puisse effectuer une opération de recherche très rapide.sql serveur recherche plein texte sur json

Ce que je:

JSON à stocker:

{"person": { 
    "name": "1234", 
    "age": "99", 
    "parameters": { 
    "param1": "1", 
    "param2": "2" 
    } 
}} 

ou

{"person": { 
    "name": "12345", 
    "age": "996", 
    "parameters": { 
    "param1": "1", 
    "param5": "5", 
    "param7": "7" 
    } 
}} 

section Paramètres peut contenir jusqu'à 20 de 60 paramètres différents. Je dois rechercher une personne en utilisant seulement quelques paramètres. Si une personne a 12 je peux utiliser 0-12 paramètres dans la requête de recherche. Le nom et l'âge sont toujours fournis dans la requête de recherche et chaque personne les a tous les deux. J'ai environ 30m jsons dans la table.

Est-il possible de le faire avec sql server sans nosql/solr/elastic?

+0

Qu'en est-MongoDB? – ControlAltDel

+0

nous avons déjà un serveur SQL et la migration n'est pas une option ces jours-ci – omali

Répondre

0

Des performances de recherche élevées sur le serveur SQL peuvent être obtenues en ajoutant des colonnes calculées en utilisant ADD col1 AS JSON_VALUE(data,'$.person.parameters.param1') , puis en indexant ces colonnes calculées.

E.g. Index JSON data

(S'il vous plaît donner un exemple sur la façon dont vous JSON est stocké dans une table sql, si nous devons fournir des exemples de code spécifiques.)