Creazione di un'applicazione Web con ricerca full text su dati dinamici

1

Anche dopo un'approfondita ingegnerizzazione dei requisiti ci ritroviamo con utenti che vogliono allegare "note" ai loro record di dati altrimenti ben strutturati, in altre parole: coppie di valori-chiave arbitrari. Il loro principale interesse è trovare i record più tardi in base a questi metadati.

Esempio:

{
  fixedattr1: 10,
  fixedattr2: 11,
  fixedattr3: 12,
  foo: 'bar',
  lol: 2
}

e

{
  fixedattr1: 0,
  fixedattr2: 1,
  fixedattr3: 2,
  baz: 'rofl'
}

potrebbero essere due di questi record. L'interesse principale è essere in grado di

  1. aggiungi al volo nuove coppie chiave-valore
  2. trova i record con determinate coppie di valori-chiave

Ovviamente questo non volerà con i database relazionali. Mongodb (ad esempio) può attribuire attributi dinamici (memorizzandoli nello stesso documento), e in generale lo stack MEAN potrebbe essere usato per costruire un'app web.

Accettiamo questa idea per un momento, quindi la domanda è: quale livello di supporto c'è in MEAN per indicizzare i documenti in base agli attributi dinamici? O c'è un'altra piattaforma tecnologica che gestisce questo?

    
posta A.M. 11.05.2016 - 13:47
fonte

2 risposte

1

PostgreSQL supporta entrambi JSON tipo di dati e GIN indicizza fuori dalla scatola in modo che possa volare bene con i database relazionali. È inoltre possibile scegliere di modellare alcuni campi fissi come colonne normali e utilizzare solo JSON per i campi dinamici. Preferirei PostgreSQL su MongoDB soprattutto se hai bisogno anche di transazioni ACID corrette e se i tuoi dati si adattano a un nodo.

    
risposta data 11.05.2016 - 14:36
fonte
0

Per quanto ne so. Mongo potrebbe indicizzare un documento, ma non sono sicuro che quell'indice valga per i record "aborari". Una tecnologia che viene in mente se parliamo di documenti json sarebbe elasticsearch. È stato costruito per ... cercare.

    
risposta data 11.05.2016 - 14:01
fonte

Leggi altre domande sui tag