API Phrase TMS

Analytics Aggregations (TMS)

Contenuti tradotti automaticamente dall'inglese con Phrase Language AI.

Il datastore che esegue query di aggregazione è costruito su Elasticsearch (attualmente versione 1.7.x). Elasticsearch offre ricerche in tempo reale e funzionalità di aggregazione, con l'API Analytics che aggiunge uno strato sottile e più sicuro sopra di esso. Il linguaggio di query e aggregazione di Elasticsearch è utilizzato negli esempi.

  • Il linguaggio utilizzato nel campo filter del JSON della query è descritto nella documentazione Elasticsearch Query DSL.

  • Il linguaggio usato nel campo aggregations del JSON della query è completamente descritto nella documentazione Elasticsearch Aggregations.

Indici

Diversi tipi di dati vivono in indici diversi. Ad esempio, i dati job vivono nell'indice jobPart, e i dati costs vivono nell'indice costs. I dati richiesti possono essere specificati specificando l'indice nell'URL dell'endpoint API di aggregazione.

Documenti entità principale-(entità) subordinata

Parti delle informazioni su un lavoro vivono in due documenti diversi nel DB di Elasticsearch. Questi documenti sono in una relazione parent-child. Ad esempio, le informazioni sul progetto di un lavoro risiedono nel documento entità principale, mentre le informazioni sul lavoro stesso risiedono nel documento (entità) subordinata. A seconda delle informazioni richieste, le aggregazioni vengono effettuate sia prima che dopo l'aggregazione dei dati relativa alla relazione entità principale-(entità) subordinata, ma l'aggregazione dei dati deve essere presente in ogni query.

Modelli di dati dell'indice

Dati Comuni

Analisi

{
  "id": stringa,
  "createdBy": <Utente>,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "deleted": booleano,
  "innerId": number,
  "nome": stringa,
  "tags": string[],
  "trashed": booleano,
  "trashedBy": <Utente>,
  "tipo": stringa
}

Assegnazione

{
  "nome": stringa,
  "traduttore": <Utente>,
  "vendor": <Vendor>
}

Portale richieste

{
  "id": stringa,
  "createdBy": <Utente>,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "eliminato": booleano,
  "nome": stringa,
  "tags": string[],
  "nelCestino": booleano,
  "urlId": string
}

Committente

{
  "id": stringa,
  "nome": stringa
}

Cliente

{
  "id": stringa,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "eliminato": booleano,
  "externalId": string,
  "nome": stringa,
  "tags": string[],
  "nelCestino": booleano,
}

CostCenter

{
  "id": stringa,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "eliminato": booleano,
  "nome": stringa,
  "tags": string[],
  "nelCestino": booleano,
}

Dominio

{
  "id": stringa,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "eliminato": booleano,
  "nome": stringa,
  "tags": string[],
  "nelCestino": booleano
}

Lavoro

{
  "id": stringa,
  "createdBy": <Utente>,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "eliminato": booleano,
  "estensione": stringa,
  "nomeFile": stringa,
  "groupCount": numero,
  "innerId": "1",
  "languagePair": string,
  "lastModified": Data,
  "localePair": stringa,
  "linguaOrigine": stringa,
  "localeSorgente": stringa,
  "tags": string[],
  "linguaDestinazione": stringa,
  "localeDestinazione": stringa",
  "attivitàId": stringa,
  "trashed": boolean,
  "trashedBy": <User>,
  "uid": string
}

JobPart

{
  "id": "19",
  "assignedTo": <Assignment>,
  "beginIndex": numero,
  "buyer": <Buyer>,
  "createdBy": <Utente>,
  "dateCreated": Data,
  "dateDue": Data,
  "endIndex": numero,
  "groupCount": numero,
  "innerId": string,
  "lastModified": Data,
  "level": numero,
  "stato": stringa,
  "tags": [],
  "uid": stringa,
  "workflowStep": <WorkflowStep>
}

MtEngine

{
  "id": string,
  "eliminato": booleano,
  "default_: boolean,
  "includeTags": booleano,
  "nome": stringa,
  "tags": string[],
  "type": stringa,
}

NetRateScheme

{
  "id": string,
  "createdBy": <Utente>,
  "dateCreated": Data,
  "dateDeleted":  Data,
  "default_": booleano,
  "eliminato": booleano,
  "externalId": string,
  "nome": stringa,
  "tags": string[],
}

PriceList

{
  "id": string,
  "createdBy": <User>,
  "currency": string,
  "dateCreated": Data,
  "dateDeleted":  Data,
  "dateTrashed":  Data,
  "default_": booleano,
  "eliminato": booleano,
  "nome": stringa,
  "tags": string[],
  "trashed": booleano,
  "unit": stringa
}

Progetto

{
  "id": string,"},{
  "buyer": <Buyer>,
  "client": <Client>,
  "costCenter": <CostCenter>,
  "createdBy": <Utente>,
  "dateCreated": Data,
  "dateDeleted":  Data,
  "dateDue":  Data,
  "dateTrashed":  Data,
  "eliminato": booleano,
  "domain": <Dominio>,
  "innerId": number,
  "languagePairs": string[],
  "localePairs": string[],
  "mtEngine": <MtEngine>,
  "nome": stringa,
  "note": stringa,
  "proprietario": <Utente>,
  "linguaOrigine": stringa,
  "localeSorgente": stringa,
  "stato": stringa,
  "sottodominio": <SubDomain>,
  "tag": stringa[],
  "lingueDestinazione": stringa[],
  "localiDestinazione": stringa[],
  "nelCestino": booleano,
  "eliminatoDa": <Utente>,
  "uid": stringa,
  "vendor": <Vendor>
}

preventivo

{
  "id": stringa,
  "createdBy": <Utente>,
  "currency": stringa,
  "dateCreated": Data,
  "dateDeleted":  Data,
  "dateTrashed":  Data,
  "eliminato": booleano,
  "innerId": string,
  "nome": stringa,
  "stato": stringa,
  "tags": string[],
  "nelCestino": booleano,
  "trashedBy": <Utente>,
  "unit": stringa
}

servizio

{
  "id": stringa,
  "dateCreated": Data,
  "dateDeleted":  Data,
  "dateTrashed":  Data,
  "eliminato": booleano,
  "nome": stringa,
  "nomePubblico": stringa,
  "tags": string[],
  "nelCestino": booleano,
  "tipo": stringa
}

SubDomain

{
  "id": stringa,
  "dateCreated": Data,
  "dateDeleted":  Data,
  "dateTrashed":  Data,
  "eliminato": booleano,
  "nome": stringa,
  "tags": string[],
  "nelCestino": booleano
}

Utente

{
  "id": numero,
  "attivo": booleano,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "eliminato": booleano,
  "e-mail": stringa,
  "nome": stringa,
  "nomeCompleto": stringa,
  "innerId": number,
  "jobTitle": stringa,
  "cognome": stringa,
  "impostazioni locali": stringa,
  "note": stringa,
  "ruolo": stringa,
  "tags": string[],
  "timeZone": string,
  "nelCestino": booleano,
  "nomeUtente": stringa
}

Vendor

{
  "id": ID,
  "candidato": booleano,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "eliminato": booleano,
  "tags": string[],
  "token": token,
  "nelCestino": booleano
}

Fase del flusso di lavoro

{
  "id": ID,
  "abbreviation": stringa,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "nome": stringa,
  "ordine": numero,
  "tags": string[],
  "nelCestino": booleano
}

Indice Analisi

Aggregazione Dati

"data": {
  "children": {
    "type": "tipoAnalisi"
  }
}

Documento Principale

{
  "automationWidget": <AutomationWidget>,
  "project": <Project>,
  "service": <Service>
}

Documento subordinato

{
  "analysis": <Analisi>,
  "jobPart": <JobPart>,
  "job": <Job>,
  "netRateScheme": <NetRateScheme>,

  "priority": numero,
  "data": {
    "MT": {
      "match0": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      },
      "match100": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      },
      "match50": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      },
      "match75": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      },
      "match85": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      },
      "match95": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      }
    },
    "repetitions": {
      "caratteri": numero,
      "pages": numero,
      "percent": numero,
      "segmenti": numero,
      "words": numero
    },
    "TM": {
      "match0": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      },
      "match100": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      },
      "match101": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      },
      "match50": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      },
      "match75": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      },
      "match85": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      },
      "match95": {
        "caratteri": numero,
        "pages": numero,
        "percent": numero,
        "segmenti": numero,
        "words": numero
      }
    },
    "total": {
      "caratteri": numero,
      "pages": numero,
      "percent": numero,
      "segmenti": numero,
      "words": numero
    }
  }
}

Indice API

Aggregazione Dati

"data": {
  "children": {
    "type": "apiType"
  }
}

Documento principale

{
  "utente": <Utente>
}

Documento subordinato

{
  "request": {
    "date": Data,
    "host": stringa,
    "ipv4": stringa,
    "ipv6": stringa,
    "location": stringa,
    "method": stringa
  },
  "response": {
    "date": Data,
    "durata": numero,
    "stato": numero
  },
  "api": {
    "azione": stringa,
    "asynch": boolean,
    "type": string,
    "uri": string,
    "ver": string
  }
}

Indice Costi

Aggregazione Dati

"data": {
  "children": {
    "type": "costsType"
  }
}

Documento principale

{
  "automationWidget": <AutomationWidget>,
  "project": <Progetto>,
  "service": <Servizio>
}

Documento subordinato

{
  "analysis": <Analysis>,
  "job": <Job>,
  "jobPart": <JobPart>,
  "netRateScheme": <NetRateScheme>,
  "priceList": <PriceList>,
  "quote": <preventivo>,
  "workflowStep": <flusso di lavoro>,
  
  "priority": number,
  "data": {
    "mt": {
      "match0": numero,
      "match100": numero,
      "match50": numero,
      "match75": numero,
      "match85": numero,
      "match95": numero
    },
    "repetition": numero,
    "tm": {
      "match0": numero,
      "match100": numero,
      "match101": numero,
      "match50": numero,
      "match75": numero,
      "match85": numero,
      "match95": numero
    },
    "totale": numero
  }
}

Indice JobPart

Aggregazione Dati

"data": {
  "children": {
    "type": "jobPartType"
  }
}

Documento Principale

{
  "automationWidget": <AutomationWidget>,
  "project": <Progetto>,
  "service": <Servizio>
}

Documento subordinato

{
  "job": <Job>,
  "jobPart": <JobPart>

  "data": {
    "counts": {
      "caratteri": {
      "totale": numero,
      "confermato": numero,
      "nonConfermato": numero,
      "bloccato": numero,
      "nonBloccato": numero,
      "confermatoEBloccato": numero,
      "nonConfermatoEBloccato": numero,
      "completato": numero,
      "nonCompletato": numero
    },
    "gruppi": {
      "totale": numero
    },
    "segmenti": {
      "totale": numero,
      "confermato": numero,
      "nonConfermato": numero,
      "bloccato": numero,
      "notLocked": numero,
      "confermatoEBloccato": numero,
      "nonConfermatoEBloccato": numero,
      "completato": numero,
      "notCompleted": numero,
      "MT": {
        "postEdited": numero,
        "rilevante": numero,
        "nonRilevante": numero
      },
      "QA": {
        "controllato": numero,
        "nonControllato": numero
      }
    },
    "words": {
      "totale": numero,
      "confermato": numero,
      "nonConfermato": numero,
      "bloccato": numero,
      "nonBloccato": numero,
      "confermatoEBloccato": numero,
      "nonConfermatoEBloccato": numero,
      "completato": numero,
      "nonCompletato": numero
    },
    "QA": {
      "avvisi": numero,
      "avvisiIgnorati": numero,
      "nonAvvisiIgnorati": numero
    }
  }
}

Esempi

  • Le richieste HTTP vengono eseguite in Postman.

  • Accedi tramite un profilo PM o amministratore e ottieni un token di accesso utilizzando una login API.

  • POST requests to api/v3/analytics/jobPart?token=&lt;your_login_token&gt;

Numero totale di lavori

query

{
  "aggregations": {
    "data": {
      "children": {
        "type": "jobPartType"
      }
    }
  }
}

Risposta

{
  "hits": {
    "total": 359
  },
  "aggregations": {
    "data": {
      "doc_count": 14417
    }
  }
}

Sotto il campo aggregazioni, l'aggregazione data ha risposto con 14.417 documenti corrispondenti mostrati nel campo doc_count.

Numero totale di parole di origine

Query

{
  "aggregations": {
    "data": {
      "(entità) subordinate": {
        "type": "jobPartType"
      },
      "aggs": {
        "wordCount": {
          "sum": {
            "field": "data.volume.words"
          }
        }
      }
    }
  }
}

Risposta

{
  "hits": {
    "total": 359
  },
  "aggregations": {
    "data": {
      "doc_count": 14417,
      "wordCount": {
        "value": 6893067
      }
    }
  }
}

Numero totale di parole di origine diviso per lingua di destinazione

query

{
  "aggregations": {
    "data": {
      "(entità) subordinate": {
        "type": "jobPartType"
      },
      "aggs": {
        "byTargetLanguage": {
          "terms": {
            "field": "job.targetLanguage",
            "dimensione": 3
          },
          "aggs": {
            "wordCount": {
              "sum": {
                "field": "data.volume.words"
              }
            }
          }
        }
      }
    }
  }
}

Risposta

{
  "hits": {
    "total": 359
  },
  "aggregations": {
    "data": {
      "byTargetLanguage": {
        "doc_count_error_upper_bound": 0,
        "sum_other_doc_count": 10071,
        "buckets": [
          {
            "doc_count": 1835,
            "wordCount": {
              "value": 702721
            },
            "key": "cs"
          },
          {
            "doc_count": 1491,
            "wordCount": {
              "value": 2602529
            },
            "key": "de"
          },
          {
            "doc_count": 1020,
            "wordCount": {
              "value": 92676
            },
            "key": "fi"
          }
        ]
      },
      "doc_count": 14417
    }
  }
}

L'entità buckets è mostrata nella risposta. Quando al modulo di analisi viene chiesto di dividere i dati per una 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 del progetto

query

{
  "aggregations": {
    "projectStatus": {
      "terms": {
        "field": "project.status"
      },
      "aggs": {
        "data": {
          "children": {
            "type": "jobPartType"
          }
        }
      }
    }
  }
}

Risposta

{
  "hits": {
    "total": 359
  },
  "aggregations": {
    "projectStatus": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "doc_count": 326,
          "data": {
            "doc_count": 14318
          },
          "key": "NEW"
        },
        {
          "doc_count": 31,
          "data": {
            "doc_count": 89
          },
          "key": "COMPLETED"
        },
        {
          "doc_count": 1,
          "data": {
            "doc_count": 4
          },
          "key": "ASSEGNATO"
        },
        {
          "doc_count": 1,
          "data": {
            "doc_count": 6
          },
          "key": "DECLINED_BY_VENDOR"
        }
      ]
    }
  }
}

Il modulo Analytics è stato impostato per dividere i dati per stato del progetto prima dell'aggregazione data.

Numero totale di job da nuovi progetti

query

{
  "filter": {
    "term": {
      "project.status": "NEW"
    }
  },
  "aggregations": {
    "data": {
      "(entità) subordinate": {
        "type": "jobPartType"
      }
    }
  }
}

Risposta

{
  "hits": {
    "total": 326
  },
  "aggregations": {
    "data": {
      "doc_count": 14318
    }
  }
}

Il campo filter viene usato nella query. Questo restringe i dati prima delle aggregazioni successive.

Questo articolo ti è stato utile?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.