2009-03-24 9 views
7

Sto provando a scrivere una query MQL che filtra valori nulli.Filtro MQL di Freebase dove valore! = Null?

L'interrogazione che ho ora (può essere eseguita utilizzando il MQL Query Editor):

[ 
    { 
    "/common/topic/image" : [ 
     { 
     "id" : null 
     } 
    ], 
    "article" : [ 
     { 
     "content" : null 
     } 
    ], 
    "name" : "bill gates", 
    "type" : "/common/topic" 
    } 
] 

I risultati che sto ottenendo:

[ 
    { 
    "/common/topic/image" : [ 
     { 
     "id" : "/guid/9202a8c04000641f8000000004fb4c01" 
     }, 
     { 
     "id" : "/wikipedia/images/commons_id/4486276" 
     } 
    ], 
    "article" : [ 
     { 
     "content" : null 
     }, 
     { 
     "content" : "/guid/9202a8c04000641f800000000903535d" 
     } 
    ], 
    "name" : "Bill Gates", 
    "type" : "/common/topic" 
    } 
] 

Sto cercando di capire come posso filtrare il "contenuto": null match nell'array "article" al momento della query. Ho esaminato la documentazione MQL ma non ho visto un modo chiaro per farlo.

risposta

10

Per filtrare gli articoli a cui non è stato assegnato alcun contenuto, è necessario espandere l'attributo id del contenuto e impostare la direttiva opzionale su false.

[ 
    { 
    "/common/topic/image" : [ 
     { 
     "id" : null 
     } 
    ], 
    "article" : [ 
     { 
     "content" : { 
      "id" : null, 
      "optional" : false 
     } 
     } 
    ], 
    "name" : "bill gates", 
    "type" : "/common/topic" 
    } 
] 

Questo vi darà il seguente risultato:

[ 
    { 
    "/common/topic/image" : [ 
     { 
     "id" : "/guid/9202a8c04000641f8000000004fb4c01" 
     }, 
     { 
     "id" : "/wikipedia/images/commons_id/4486276" 
     } 
    ], 
    "article" : [ 
     { 
     "content" : { 
      "id" : "/guid/9202a8c04000641f800000000903535d" 
     } 
     } 
    ], 
    "name" : "Bill Gates", 
    "type" : "/common/topic" 
    } 
] 

Per ulteriori informazioni sull'utilizzo della direttiva opzionale vedere la documentazione here.

+2

Chi sei e come sai così tanto su MQL? ;) –

+0

Haha, sono solo un membro della comunità Freebase che ha hackerato in MQL per circa un anno. Sono felice di essere in grado di aiutare le persone a imparare le corde e, si spera, ottenere più sviluppatori che sviluppano applicazioni utilizzando i dati di Freebase. –

+0

quando commuto il flag opzionale su false, mi dice: "Query troppo difficile". – fandang