Il datastore che esegue query di aggregazione si basa su Elasticsearch (attualmente versione 1.7.x). Elasticsearch fornisce ricerche in tempo reale e funzionalità di aggregazione con l'API di analisi che forma un livello sottile e migliorato di sicurezza. Negli esempi vengono utilizzate query Elasticsearch e lingua di aggregazione.
-
La lingua utilizzata nel campo filtro della query JSON è descritta nella documentazione DSL della query.
-
La lingua utilizzata nel campo delle aggregazioni della query JSON è completamente descritta nella documentazione Elasticsearch Aggregations.
Indici
Diversi tipi di dati vivono in indici diversi. Ad esempio, i dati sul lavoro figurano nell'indice jobPart e i costi nell'indice dei costi. I dati richiesti possono essere specificati specificando l'indice nell'URL dell'endpoint API di aggregazione.
Documenti (entità) principali
Parte delle informazioni su un lavoro si trovano in due documenti diversi nel DB di Elasticsearch. Questi documenti hanno un rapporto (entità) principale. Ad esempio, le informazioni sul progetto di un lavoro sono contenute nel documento dell'entità principale, mentre le informazioni sul lavoro stesso sono contenute nel documento (entità) subordinata. A seconda delle informazioni richieste, le aggregazioni sono precedenti all'aggregazione dati entità principale-(entità) subordinata o successive, ma l'aggregazione dei dati stessa dovrebbe essere presente in tutte le query.
Dati comuni
Analisi
{ "ID": stringa, "createdBy": <utente>, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "eliminato": booleano, "innerId": numero, "name": stringa, "tag": stringa[], "cestinato": booleano, "trashedBy": <Utente>, "type": stringa }
Incarico
{ "name": stringa, "linguist": <User>, "vendor": <vendor> }
Portale richiedente
{ "ID": stringa, "createdBy": <utente>, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "eliminato": booleano, "name": stringa, "tag": stringa[], "cestinato": booleano, "urlId": stringa }
Buyer
{ "ID": stringa, "name": stringa }
Cliente
{ "ID": stringa, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "eliminato": booleano, "externalId": stringa, "name": stringa, "tag": stringa[], "cestinato": booleano, }
CostCenter
{ "ID": stringa, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "eliminato": booleano, "name": stringa, "tag": stringa[], "cestinato": booleano, }
Dominio
{ "ID": stringa, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "eliminato": booleano, "name": stringa, "tag": stringa[], "cestinato": booleano }
Lavoro
{ "ID": stringa, "createdBy": <utente>, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "eliminato": booleano, "estensione": stringa, "fileName": stringa, "groupCount": numero, "innerId": "1", "languagePair": stringa, "lastModified": Data, "localePair": stringa, "sourceLanguage": stringa, "sourceLocale": stringa, "tag": stringa[], "targetLanguage": stringa, "targetLocale": stringa", "taskId": stringa, "cestinato": booleano, "trashedBy": <Utente>, "uid": stringa }
JobPart
{ "id": "19", "assignedTo": <Assegnazione>, "beginIndex": numero, "committente": <committente>, "createdBy": <utente>, "dateCreated": Data, "dateDue": Data, "endIndex": numero, "groupCount": numero, "innerId": stringa, "lastModified": Data, "livello": numero, "stato": stringa, "tag": [], "uid": stringa, "workflowStep": <WorkflowStep> }
MtEngine
{ "ID": stringa, "eliminato": booleano, "predefinito_: booleano, "includeTags": booleano, "name": stringa, "tag": stringa[], "type": stringa, }
NetRateScheme
{ "ID": stringa, "createdBy": <utente>, "dateCreated": Data, "dataEliminata": Data, "default_": booleano, "eliminato": booleano, "externalId": stringa, "name": stringa, "tag": stringa[], }
Listino prezzi
{ "ID": stringa, "createdBy": <utente>, "valuta": stringa, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "default_": booleano, "eliminato": booleano, "name": stringa, "tag": stringa[], "cestinato": booleano, "unità": stringa }
Progetto
{ "ID": stringa, "committente": <committente>, "cliente": <Cliente>, "costCenter": <Centro di costo>, "createdBy": <utente>, "dateCreated": Data, "dataEliminata": Data, "dateDue": Data, "dateTrashed": Data, "eliminato": booleano, "dominio": <Dominio>, "innerId": numero, "languagePairs": stringa[], "localePairs": stringa[], "mtEngine": <MtEngine>, "name": stringa, "note": stringa, "proprietario": <utente>, "sourceLanguage": stringa, "sourceLocale": stringa, "stato": stringa, "sottodominio": <Sottodominio>, "tag": stringa[], "targetLanguages": stringa[], "targetLocales": stringa[], "cestinato": booleano, "trashedBy": <Utente>, "uid": stringa, "vendor": <vendor> }
Preventivo
{ "ID": stringa, "createdBy: <Utente>, "valuta": stringa, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "eliminato": booleano, "innerId": stringa, "name": stringa, "stato": stringa, "tag": stringa[], "cestinato": booleano, "trashedBy": <Utente>, "unità": stringa }
Servizio
{ "ID": stringa, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "eliminato": booleano, "name": stringa, "publicName": stringa, "tag": stringa[], "cestinato": booleano, "type": stringa }
SubDomain
{ "ID": stringa, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "eliminato": booleano, "name": stringa, "tag": stringa[], "cestinato": booleano }
Utente
{ "ID": numero, "attivo": booleano, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "eliminato": booleano, "e-mail": stringa, "firstName": stringa, "fullName": stringa, "innerId": numero, "jobTitle": stringa, "lastName": stringa, "impostazioni locali": stringa, "note": stringa, "ruolo": stringa, "tag": stringa[], "fuso orario": stringa, "cestinato": booleano, "userName": stringa }
Vendor
{ "ID": stringa, "candidato": booleano, "dateCreated": Data, "dataEliminata": Data, "dateTrashed": Data, "eliminato": booleano, "tag": stringa[], "token": stringa, "cestinato": booleano }
WorkflowStep
{ "ID": stringa, "abbreviazione": stringa, "dataEliminata": Data, "dateTrashed": Data, "name": stringa, "ordine": numero, "tag": stringa[], "cestinato": booleano }
Indice di analisi
Aggregazione dei dati
"dati": { "bambini": { "type": "analysisType" } }
Documento entità principale
{ "automationWidget": <AutomationWidget>, "progetto": <Progetto>, "servizio": <Servizio> }
Documento (entità) subordinato
{ "analisi": <analisi>, "jobPart": <JobPart>, "lavoro": <Lavoro>, "netRateScheme": <NetRateScheme>, "priorità": numero, "dati": { "mt": { "match0": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "match100": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "match50": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "match75": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "match85": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "match95": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero } }, "ripetizioni": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "tm": { "match0": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "match100": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "match101": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "match50": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "match75": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "match85": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero }, "match95": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero } }, "totale": { "caratteri": numero, "pagine": numero, "percentuale": numero, "segmenti": numero, "parole": numero } } }
Indice API
Aggregazione dei dati
"dati": { "bambini": { "type": "apiType" } }
Documento entità principale
{ "user": <User> }
Documento (entità) subordinato
{ "richiesta": { "data": Data, "host": stringa, "ipv4": stringa, "ipv6": stringa, "posizione": stringa, "metodo": stringa }, "risposta": { "data": Data, "durata": numero, "stato": numero }, "api": { "azione": stringa, "asincrono": booleano, "type": stringa, "uri": stringa, "ver": stringa } }
Indice dei costi
Aggregazione dei dati
"dati": { "bambini": { "type": "costsType" } }
Documento entità principale
{ "automationWidget": <AutomationWidget>, "progetto": <Progetto>, "servizio": <Servizio> }
Documento (entità) subordinato
{ "analisi": <analisi>, "lavoro": <Lavoro>, "jobPart": <JobPart>, "netRateScheme": <NetRateScheme>, "Listino prezzi": <Listino prezzi>, "preventivo": <Preventivo>, "workflowStep": <WorkflowStep>, "priorità": numero, "dati": { "mt": { "match0": numero, "match100": numero, "match50": numero, "match75": numero, "match85": numero, "match95": numero }, "ripetizioni": numero, "tm": { "match0": numero, "match100": numero, "match101": numero, "match50": numero, "match75": numero, "match85": numero, "match95": numero }, "totale": numero } }
Indice jobPart
Aggregazione dei dati
"dati": { "bambini": { "type": "jobPartType" } }
Documento entità principale
{ "automationWidget": <AutomationWidget>, "progetto": <Progetto>, "servizio": <Servizio> }
Documento (entità) subordinato
{ "lavoro": <Lavoro>, "jobPart": <JobPart> "dati": { "conteggi": { "chars": { "totale": numero, "confermato": numero, "notConfirmed": numero, "bloccato": numero, "notLocked": numero, "confirmedAndLocked": numero, "notConfirmedAndLocked": numero, "completato": numero, "notCompleted": numero }, "gruppi": { "totale": numero }, "segmenti": { "totale": numero, "confermato": numero, "notConfirmed": numero, "bloccato": numero, "notLocked": numero, "confirmedAndLocked": numero, "notConfirmedAndLocked": numero, "completato": numero, "notCompleted": numero, "mt": { "postEdited": numero, "rilevante": numero, "notRelevant": numero }, "qa": { "controllato": numero, "notChecked": numero } }, "parole": { "totale": numero, "confermato": numero, "notConfirmed": numero, "bloccato": numero, "notLocked": numero, "confirmedAndLocked": numero, "notConfirmedAndLocked": numero, "completato": numero, "notCompleted": numero }, "qa": { "avvisi": numero, "ignoredWarnings": numero, "notIgnoredWarnings": numero } } }
-
Le richieste HTTP vengono eseguite in Postman.
-
Accedi tramite un profilo PM o amministratore e ottieni un token di accesso utilizzando un'API di accesso.
-
POST richieste ad
API/v3/Analitica/LavoroPart?Token=<your_login_Token>
Numero totale di lavori
Query
{ "aggregazioni": { "dati": { "bambini": { "type": "jobPartType" } } } }
Risposta
{ "hits": { "totale": 359 }, "aggregazioni": { "dati": { "doc_count": 14417 } } }
Sotto il campo aggregazioni, l'aggregazione dei dati ha risposto con 14.417 documenti corrispondenti mostrati nel campo doc_count.
Numero totale di parole di origine
Query
{ "aggregazioni": { "dati": { "bambini": { "type": "jobPartType" }, "aggs": { "wordCount": { "sum": { "campo": "data.volume.words" } } } } } }
Risposta
{ "hits": { "totale": 359 }, "aggregazioni": { "dati": { "doc_count": 14417, "wordCount": { "valore": 6893067 } } } }
Numero totale di parole di origine diviso per lingua di destinazione
Query
{ "aggregazioni": { "dati": { "bambini": { "type": "jobPartType" }, "aggs": { "byTargetLanguage": { "termini": { "field": "job.targetLanguage", "dimensione": 3 }, "aggs": { "wordCount": { "sum": { "campo": "data.volume.words" } } } } } } } }
Risposta
{ "hits": { "totale": 359 }, "aggregazioni": { "dati": { "byTargetLanguage": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 10071, "secchi": [ { "doc_count": 1835, "wordCount": { "valore": 702721 }, "chiave": "cs" }, { "doc_count": 1491, "wordCount": { "valore": 2602529 }, "chiave": "de" }, { "doc_count": 1020, "wordCount": { "valore": 92676 }, "chiave": "fi" } ] }, "doc_count": 14417 } } }
L'entità Buckets viene mostrata nella risposta. Quando al modulo Analytics viene chiesto di dividere i dati per qualche categoria, il risultato viene rappresentato come un elenco di bucket. Ogni bucket contiene una chiave che definisce quali dati rappresenta questo bucket (in questo caso una lingua di destinazione) e un valore (altre aggregazioni) specifico solo per questa parte del set di dati.
Numero totale di lavori divisi per stato progetto
Query
{ "aggregazioni": { "projectStatus": { "termini": { "campo": "progetto.stato" }, "aggs": { "dati": { "bambini": { "type": "jobPartType" } } } } } }
Risposta
{ "hits": { "totale": 359 }, "aggregazioni": { "projectStatus": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "secchi": [ { "doc_count": 326, "dati": { "doc_count": 14318 }, "chiave": "NUOVO" }, { "doc_count": 31, "dati": { "doc_count": 89 }, "chiave": "COMPLETATO" }, { "doc_count": 1, "dati": { "doc_count": 4 }, "chiave": "ASSEGNATO" }, { "doc_count": 1, "dati": { "doc_count": 6 }, "chiave": "DECLINED_BY_VENDOR" } ] } } }
Al modulo di analisi è stato detto di dividere i dati per stato progetto prima dell'aggregazione dei dati.
Numero totale di lavori da nuovi progetti
Query
{ "filtrare": { "termine": { "project.status": "NUOVO" } }, "aggregazioni": { "dati": { "bambini": { "type": "jobPartType" } } } }
Risposta
{ "hits": { "totale": 326 }, "aggregazioni": { "dati": { "doc_count": 14318 } } }
Il campo filtro è usato nella query. Questo restringe i dati prima di seguire le aggregazioni.