API do Phrase TMS

Analytics Aggregations (TMS)

O conteúdo de toda a Central de Ajuda é traduzido automaticamente de inglês pelo Phrase Language AI.

O datastore que executa consultas de agregação é construído sobre o Elasticsearch (atualmente versão 1.7.x). O Elasticsearch fornece buscas em tempo real e capacidades de agregação, com a Analytics API formando uma camada fina e aprimorada de segurança sobre ele. A linguagem de consulta e agregação do Elasticsearch é usada nos exemplos.

  • A linguagem usada no campo filter do JSON da consulta é descrita na documentação do Elasticsearch Query DSL.

  • A linguagem usada no campo agregações do JSON da consulta é totalmente descrita na documentação do Elasticsearch Aggregations.

Índices

Diferentes tipos de dados vivem em diferentes índices. Por exemplo, dados de trabalho vivem no índice jobPart, e dados de custos vivem no índice custos. Os dados necessários podem ser especificados ao indicar o índice na URL do endpoint da API de agregação.

Documentos Principal-Secundário

Partes da informação sobre um trabalho vivem em dois documentos diferentes no banco de dados Elasticsearch. Esses documentos estão em um relacionamento principal-secundário. Por exemplo, informações sobre o projeto de um trabalho ficam no documento principal, enquanto informações sobre o próprio trabalho ficam no documento secundário. Dependendo das informações necessárias, as agregações estão antes da agregação de dados principal-secundário ou depois dela, mas a agregação de dados em si deve estar presente em todas as consultas.

Modelos de Dados de Índice

Dados Comuns

Análise

{
  "id": string,
  "createdBy": <User>,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "innerId": number,
  "nome": string,
  "códigos": string,
  "excluído": booleano,
  "trashedBy": <User>,
  "tipo": string
}

Atribuição

{
  "nome": string,
  "linguista": <User>,
  "fornecedor": <Vendor>
}

Portal de Solicitações

{
  "id": string,
  "createdBy": <User>,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "nome": string,
  "códigos": string[],
  "excluído": booleano,
  "urlId": string
}

Comprador

{
  "id": string,
  "nome": string
}

Cliente

{
  "id": string,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "idExterno": string,
  "nome": string,
  "códigos": string,
  "excluído": booleano,
}

CostCenter

{
  "id": string,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "nome": string,
  "códigos": string,
  "excluído": booleano,
}

Domínio

{
  "id": string,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "nome": string,
  "tags": string[],
  "excluído": booleano
}

Trabalho

{
  "id": string,
  "createdBy": <User>,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "extensão": string,
  "fileName": string,
  "groupCount": número,
  "innerId": "1",
  "languagePair": string,
  "lastModified": Data,
  "localePair": string,
  "idiomaFonte": string,
  "sourceLocale": string,
  "tags": string[],
  "idiomaTradução": string,
  "targetLocal": string,
  "tarefaId": string,
  "trashed": boolean,
  "trashedBy": <User>,
  "uid": string
}

JobPart

{
  "id": "19",
  "assignedTo": <Assignment>,
  "beginIndex": number,
  "buyer": <Buyer>,
  "createdBy": <User>,
  "dateCreated": Data,
  "dateDue": Data,
  "endIndex": number,
  "contagemGrupo": número,
  "innerId": string,
  "lastModified": Data,
  "nível": número,
  "estado": string,
  "tags": [],
  "uid": string,
  "workflowStep": <WorkflowStep>
}

MtEngine

{
  "id": string,
  "excluído": booleano,
  "default_: boolean,
  "includeTags": boolean,
  "nome": string,
  "tags": string[],
  "tipo": string,
}

NetRateScheme

{
  "id": string,
  "createdBy": <User>,
  "dateCreated": Data,
  "dateDeleted": Data,
  "default_": boolean,
  "excluído": booleano,
  "idExterno": string,
  "nome": string,
  "tags": string[],
}

Lista de Preços

{
  "id": string,
  "createdBy": <User>,
  "currency": string,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "default_": boolean,
  "excluído": booleano,
  "nome": string,
  "tags": string[],
  "excluído": booleano,
  "unit": string
}

Projeto

{
  "id": string,
  "comprador": <Buyer>,
  "cliente": <Client>,
  "costCenter": <CostCenter>,
  "createdBy": <User>,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateDue": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "domínio": <Domain>,
  "innerId": number,
  "languagePairs": string[],
  "localePairs": string[],
  "mtEngine": <MtEngine>,
  "nome": string,
  "nota": string,
  "proprietário": <User>,
  "idiomaFonte": string,
  "sourceLocale": string,
  "estado": string,
  "subtema": <SubDomain>,
  "códigos": string[],
  "targetLanguages": string[],
  "targetLocais": string,
  "excluído": booleano,
  "trashedBy": <User>,
  "uid": string,
  "fornecedor": <Vendor>
}

Orçamento

{
  "id": string,
  "criadoPor: <User>,
  "currency": string,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "innerId": string,
  "nome": string,
  "estado": string,
  "códigos": string[],
  "excluído": booleano,
  "trashedBy": <User>,
  "unit": string
}

Serviço

{
  "id": string,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "nome": string,
  "publicName": string,
  "tags": string[],
  "excluído": booleano,
  "tipo": string
}

Subtema

{
  "id": string,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "nome": string,
  "tags": string[],
  "excluído": booleano
}

Usuário

{
  "id": número,
  "ativo": booleano,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "e-mail": string,
  "primeiroNome": string,
  "fullName": string,
  "innerId": number,
  "jobTitle": string,
  "lastName": string,
  "local": string,
  "nota": string,
  "papel": string,
  "códigos": string,
  "fusoHorário": string,
  "excluído": booleano,
  "userName": string
}

Fornecedor

{
  "id": string,
  "candidato": booleano,
  "dateCreated": Data,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "excluído": booleano,
  "tags": string[],
  "token": string,
  "descartado": booleano
}

EtapaDoFluxo

{
  "id": string,
  "abreviação": string,
  "dateDeleted": Data,
  "dateTrashed": Data,
  "nome": string,
  "pedido": número,
  "tags": string[],
  "trashed": boolean
}

Índice de Análise

Agregação de Dados

"data": {
  "children": {
    "type": "analysisType"
  }
}

Documento Principal

{
  "automationWidget": <AutomationWidget>,
  "projeto": <Projeto>,
  "serviço": <Serviço>
}

Documento Secundário

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

  "prioridade": número,
  "data": {
    "mt": {
      "correspondência0": {
        "caracteres": número,
        "páginas": número,
        "percent": número,
        "segmentos": número,
        "palavras": número
      },
      "match100": {
        "caracteres": número,
        "páginas": número,
        "percent": número,
        "segmentos": número,
        "palavras": número
      },
      "match50": {
        "caracteres": número,
        "páginas": número,
        "percent": número,
        "segmentos": número,
        "palavras": número
      },
      "match75": {
        "caracteres": número,
        "páginas": número,
        "percentual": número,
        "segmentos": número,
        "palavras": número
      },
      "match85": {
        "caracteres": número,
        "páginas": número,
        "percentual": número,
        "segmentos": número,
        "palavras": número
      },
      "match95": {
        "caracteres": número,
        "páginas": número,
        "percentual": número,
        "segmentos": número,
        "palavras": número
      }
    },
    "repetitions": {
      "caracteres": número,
      "páginas": número,
      "percentual": número,
      "segments": número,
      "words": número
    },
    "tm": {
      "correspondencia0": {
        "caracteres": número,
        "páginas": número,
        "percent": número,
        "segments": número,
        "words": número
      },
      "match100": {
        "caracteres": número,
        "páginas": número,
        "percent": número,
        "segments": número,
        "words": número
      },
      "match101": {
        "caracteres": número,
        "páginas": número,
        "percent": número,
        "segments": número,
        "words": número
      },
      "match50": {
        "caracteres": número,
        "páginas": número,
        "percent": número,
        "segmentos": número,
        "words": número
      },
      "match75": {
        "caracteres": número,
        "páginas": número,
        "percent": número,
        "segmentos": número,
        "words": número
      },
      "match85": {
        "caracteres": número,
        "páginas": número,
        "percent": número,
        "segmentos": número,
        "words": número
      },
      "match95": {
        "caracteres": número,
        "páginas": número,
        "percent": número,
        "segmentos": número,
        "words": número
      }
    },
    "total": {
      "caracteres": número,
      "páginas": número,
      "percent": número,
      "segmentos": número,
      "words": número
    }
  }
}

Índice da API

Agregação de Dados

"data": {
  "secundários": {
    "type": "tipoApi"
  }
}

Documento Principal

{
  "user": <User>
}

Documento Secundário

{
  "request": {
    "date": Data,
    "host": string,
    "ipv4": string,
    "ipv6": string,
    "localização": string,
    "método": string
  },
  "resposta": {
    "date": Data,
    "duração": número,
    "estado": número
  },
  "api": {
    "ação": string,
    "asynch": boolean,
    "type": string,
    "uri": string,
    "ver": string
  }
}

Índice de Custos

Agregação de Dados

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

Documento Principal

{
  "automationWidget": <AutomationWidget>,
  "project": <Projeto>,
  "service": <Serviço>
}

Documento Secundário

{
  "analysis": <Analysis>,
  "job": <Job>,
  "jobPart": <JobPart>,
  "netRateScheme": <NetRateScheme>,
  "priceList": <PriceList>,
  "quote": <orçamento>,
  "workflowStep": <WorkflowStep>,
  
  "priority": número,
  "data": {
    "mt": {
      "match0": número,
      "match100": número,
      "match50": número,
      "match75": número,
      "match85": número,
      "match95": número
    },
    "repetition": número,
    "tm": {
      "match0": número,
      "match100": número,
      "match101": número,
      "match50": número,
      "match75": número,
      "match85": número,
      "match95": número
    },
    "total": número
  }
}

índice da parte do trabalho

Agregação de Dados

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

Documento Principal

{
  "automationWidget": <AutomationWidget>,
  "project": <Projeto>,
  "service": <Serviço>
}

Documento Secundário

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

  "data": {
    "counts": {
      "chars": {
      "total": número,
      "confirmed": confirmado,
      "notConfirmed": não confirmado,
      "locked": bloqueado,
      "notLocked": número,
      "confirmedAndLocked": number,
      "notConfirmedAndLocked": number,
      "completed": número,
      "notCompleted": número,
    },
    "grupos": {
      "total": número
    },
    "segments": {
      "total": número,
      "confirmed": número,
      "notConfirmed": número,
      "locked": bloqueado,
      "nãoBloqueado": número,
      "confirmedAndLocked": number,
      "notConfirmedAndLocked": number,
      "completo": número,
      "nãoCompleto": número,
      "mt": {
        "pósEditado": número,
        "relevante": número,
        "notRelevant": number
      },
      "qa": {
        "verificado": número,
        "nãoVerificado": número,
      }
    },
    "palavras": {
      "total": número,
      "confirmed": confirmado,
      "notConfirmed": não confirmado,
      "locked": bloqueado,
      "notLocked": número,
      "confirmedAndLocked": número,
      "notConfirmedAndLocked": número,
      "completed": número,
      "notCompleted": número,
    },
    "qa": {
      "avisos": número,
      "ignoredWarnings": number,
      "notIgnoredWarnings": number
    }
  }
}

Exemplos

  • As requisições HTTP são executadas no Postman.

  • Faça login usando um perfil de GP ou admin e obtenha um token de login usando uma API de login.

  • Requisições POST para api/v3/analytics/jobPart?token=&lt;your_login_token&gt;

Número Total de Trabalhos

Consulta

{
  "agregações": {
    "data": {
      "children": {
        "type": "jobPartType"
      }
    }
  }
}

Resposta

{
  "resultados": {
    "total": 359
  },
  "agregações": {
    "data": {
      "doc_count": 14417
    }
  }
}

Sob o campo aggregations, a agregação data respondeu com 14.417 documentos correspondentes mostrados no campo doc_count.

Número Total de Palavras do texto original

Consulta

{
  "agregações": {
    "data": {
      "children": {
        "type": "jobPartType"
      },
      "aggs": {
        "wordCount": {
          "soma": {
            "field": "data.volume.words"
          }
        }
      }
    }
  }
}

Resposta

{
  "resultados": {
    "total": 359
  },
  "agregações": {
    "data": {
      "doc_count": 14417,
      "wordCount": {
        "valor": 6893067
      }
    }
  }
}

Número total de palavras do texto original dividido pelo idioma de tradução

Consulta

{
  "agregações": {
    "data": {
      "children": {
        "type": "jobPartType"
      },
      "aggs": {
        "byTargetLanguage": {
          "terms": {
            "field": "job.targetLanguage",
            "tamanho": 3
          },
          "aggs": {
            "wordCount": {
              "soma": {
                "field": "data.volume.words"
              }
            }
          }
        }
      }
    }
  }
}

Resposta

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

A entidade buckets é mostrada na resposta. Quando o módulo de estatísticas é solicitado a dividir os dados por alguma categoria, o resultado é representado como uma lista de buckets. Cada bucket contém uma chave que define quais dados esse bucket representa (neste caso, um idioma de tradução) e um valor (outras agregações) específico só para essa parte do conjunto de dados.

Número total de trabalhos dividido pelo estado do projeto

Consulta

{
  "agregações": {
    "projectStatus": {
      "terms": {
        "field": "project.status"
      },
      "aggs": {
        "data": {
          "children": {
            "type": "jobPartType"
          }
        }
      }
    }
  }
}

Resposta

{
  "resultados": {
    "total": 359
  },
  "agregações": {
    "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": "CONCLUÍDO"
        },
        {
          "doc_count": 1,
          "data": {
            "doc_count": 4
          },
          "key": "ATRIBUÍDO"
        },
        {
          "doc_count": 1,
          "data": {
            "doc_count": 6
          },
          "key": "RECUSADO_PELO_FORNECEDOR"
        }
      ]
    }
  }
}

O módulo de estatísticas foi instruído a dividir os dados pelo estado do projeto antes da agregação data.

Número Total de Trabalhos de Novos Projetos

Consulta

{
  "filter": {
    "termo": {
      "project.status": "NOVO"
    }
  },
  "aggregations": {
    "data": {
      "children": {
        "type": "jobPartType"
      }
    }
  }
}

Resposta

{
  "hits": {
    "total": 326
  },
  "agregações": {
    "data": {
      "doc_count": 14318
    }
  }
}

O campo filter é usado na consulta. Isso restringe os dados antes das agregações seguintes.

Esse artigo foi útil?

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.