Referência do perfil de comparação
Cada opção que um perfil de comparação pode usar.
Configurações do perfil
| Configuração | Significado |
|---|---|
| Tipo de entidade | O tipo que este perfil compara. Um perfil ativo por tipo de entidade por vez. |
| Limiar de vínculo automático | Peso composto no qual ou acima do qual um par se consolida sozinho. Unidades logarítmicas de evidência. Padrão 10.0, faixa 0–100. |
| Limiar de revisão manual | Peso composto no qual ou acima do qual um par entra na fila de revisão. Precisa ser igual ou inferior ao de vínculo automático — verificado ao salvar. Padrão 5.0, faixa 0–100. |
| Probabilidade a priori | A fração assumida de pares candidatos que são correspondências verdadeiras. Afeta apenas a confiança reportada. Padrão 0.00001. |
| Mínimo de atributos concordantes | Atributos distintos que precisam concordar antes do vínculo automático, salvo se um nível determinístico resolveu. Independente de limiar. Padrão 1, faixa 1–20. |
| Ativo | Exatamente um perfil por tipo de entidade pode estar ativo. Ativar um desativa os irmãos atomicamente. |
Comparadores
Usados por níveis de comparação para graduar quão bem dois valores concordam.
| Comparador | Compara | Notas |
|---|---|---|
exact | Igualdade de valores canônicos | O único comparador que um nível determinístico pode usar |
jaro_winkler | Similaridade textual, favorecendo prefixos comuns | Adequado a nomes de pessoa |
levenshtein | Distância de edição | Erros de digitação e de transcrição |
prefix | Um prefixo | Valores truncados ou abreviados |
last_n | Os n caracteres finais | Identificadores dos quais só o sufixo é retido |
phonetic | Como os valores soam | Recebe um codec — veja abaixo |
equivalence_set | Pertencimento a um grupo de equivalentes conhecidos | Apelidos e abreviações, via dicionário nomeado |
token_aligned | Valores como conjuntos de tokens, sem ordem | Nomes multipartes reordenados |
date_equal | Duas datas por igualdade | |
date_within | Duas datas dentro de uma tolerância | Recebe uma quantidade e uma unidade |
numeric_equal | Dois números por igualdade | |
numeric_within | Dois números dentro de uma tolerância | Recebe um delta e uma unidade |
lookup_equal | Dois códigos de dados de referência | Compara códigos canônicos, não rótulos |
address_component | Uma parte nomeada de um endereço composto | Ciente de composto |
address_expand | Endereços inteiros, após expansão | Ciente de composto |
null_handling | Como um valor ausente é tratado | |
multi_valued_best | Envolve outro comparador em atributos multivalorados | Raramente necessário — multivalorados são enumerados automaticamente |
Um comparador escalar aplicado a um atributo composto inteiro — um endereço, uma licença — é rejeitado ao salvar o perfil. Dois compostos completamente diferentes se comparariam como iguais, o que consolida de forma catastrófica. Mire um sub-campo nomeado, ou use um comparador ciente de composto.
Primitivos de blocagem
Usados por estratégias de blocagem para derivar chaves de coleta de candidatos.
| Primitivo | Emite |
|---|---|
exact | O valor canônico como chave |
prefix | Um prefixo do valor |
phonetic | Uma codificação fonética — recebe um codec |
year_of | A parte do ano de uma data |
concat | Uma chave combinando vários primitivos filhos |
any_of | A união das chaves de vários primitivos filhos |
trigram_gin | Um recuo por similaridade em vez de chave de igualdade |
Atributos multivalorados se desdobram: uma chave por valor. Um composto combina seus filhos, e é suprimido inteiramente se todo valor contribuinte for suprimido como anônimo.
Campos de uma estratégia de blocagem
Uma estratégia envolve uma árvore dos primitivos acima. Ela aceita quatro campos, e nenhum deles é fixo após a criação.
| Campo | Aceita | Padrão | O que faz |
|---|---|---|---|
strategyName | 1–40 caracteres | — | Nomeia a estratégia, para que um perfil com várias possa ser raciocinado. |
primitiveTree | Uma árvore de primitivos | — | Quais chaves esta estratégia deriva. Uma árvore malformada é recusada ao salvar, em vez de silenciosamente não reunir nada. |
anonSuppress | verdadeiro ou falso | false | Se valores comuns demais para servir de evidência são descartados das chaves desta estratégia. Veja adiante. |
sortOrder | Inteiro, 0 ou maior | 0 | Ordem de apresentação entre as estratégias do perfil. |
Um perfil normalmente carrega várias estratégias. Cada uma deriva suas próprias chaves, e um registro é candidato se qualquer uma delas casar — então as estratégias somam abrangência em vez de estreitarem umas às outras.
anonSuppress em estratégias baseadas num valor comumO padrão é desligado, o que significa que uma estratégia que bloqueia apenas por sobrenome vai reunir todos os Silva do tenant como candidatos de todos os outros Silva. Isso não está errado — eles genuinamente compartilham a chave — mas é caro e não produz nada que a pontuação possa aproveitar.
Com a supressão ligada, valores que aparecem com frequência alta demais para distinguir alguém deixam de gerar chaves para aquela estratégia. Mantenha desligado em estratégias já seletivas, como um identificador nacional ou um CEP combinado com sobrenome.
Codecs fonéticos
| Codec | Notas |
|---|---|
soundex | Clássico, agressivo; alta abrangência, baixa precisão |
dmetaphone | Double metaphone; lida substancialmente melhor com nomes de origem não inglesa |
Estes dois são o conjunto completo. Um nome de codec fora desta lista não emite chave alguma — produzindo silenciosamente uma estratégia de blocagem que nunca reúne nada.
Estratégias de sobrevivência
Escolhem o valor vencedor por atributo após uma consolidação.
| Estratégia | Vencedor | Vencedores por grupo |
|---|---|---|
source_priority | O valor da origem de maior prioridade | 1 |
most_recent | O valor atualizado mais recentemente. Padrão do motor quando nenhuma regra é definida. | 1 |
oldest_value | O valor do registro contribuinte mais antigo | 1 |
max | O máximo numérico ou ordenado | 1 |
min | O mínimo numérico ou ordenado | 1 |
frequency | O valor mais comum entre os contribuintes | 1 |
aggregation | Todo valor distinto, deduplicado | Vários |
Regras se aplicam por grupo (atributo, tipo de uso), então um atributo
multivalorado com tipos de uso resolve cada tipo independentemente — um endereço
residencial vencedor e um comercial, não um endereço só.
aggregation é a escolha certa para atributos genuinamente multivalorados como
e-mail e telefone, onde colapsar num único vencedor perde dados reais.

Níveis de comparação
Um nível de comparação — um degrau de uma escada — é o que avalia um atributo. Estes são os campos que cada degrau aceita.
| Campo | Aceita | Padrão | Alterável | O que faz |
|---|---|---|---|---|
attributeName | 1–100 caracteres. Um nome de atributo simples, ou um caminho pontuado dentro de um composto | — | Não | Qual atributo este degrau avalia. address.postalCode mira um sub-campo; um sub-campo que o composto não declara é recusado ao salvar. Um degrau não pode ser movido para outro atributo — crie um novo. |
levelName | 1–40 caracteres | — | Sim | O rótulo do degrau, como exact, phonetic, mismatch. |
levelOrder | Inteiro, 0 ou maior | — | Sim | Posição na escada. O motor percorre em ordem crescente e assume o primeiro degrau que se encaixa, então a ordem é comportamento, não apresentação. |
comparator | Até 40 caracteres, ou vazio | — | Sim | Como os dois valores são avaliados. Deixar vazio marca o degrau abrangente que registra uma divergência. |
comparatorConfig | Um objeto | {} | Sim | As configurações daquele comparador. O formato varia por comparador — veja Comparadores. |
mProbability | 0 a 1 | — | Sim | Com que confiabilidade este degrau dispara quando dois registros são de fato o mesmo. |
uProbability | 0 a 1 | — | Sim | Com que frequência ele dispara por pura coincidência. |
isDeterministic | verdadeiro ou falso | false | Sim | Resolve o par sozinho, independentemente do total. Legal apenas com o comparador exact. |
O peso não é você quem define
Não existe campo de peso, e a ausência é deliberada. A plataforma o calcula a partir das duas probabilidades quando você salva o degrau:
matchWeight = log2(mProbability / uProbability)
Se a interface aceitasse um peso, o número na tela poderia divergir do número com que o motor pontua. Em vez disso você declara o que acredita sobre a evidência — quão confiável é a concordância e com que frequência ela acontece por acaso — e o peso decorre disso.
Outros três valores são devolvidos mas nunca definidos: o sub-campo resolvido, o atributo resolvido e o próprio peso.
Regras que a plataforma impõe
- Níveis são ordenados; o motor assume o primeiro que se encaixa.
- Toda escada precisa terminar num nível abrangente, que é o que registra uma divergência. Sem ele, uma divergência não contribui nada em vez de contar contra o par.
- Um nível pode ser marcado determinístico apenas quando seu comparador é
exact. - Uma escada pode mirar um sub-campo composto com notação pontuada. Um sub-campo que não existe é rejeitado ao salvar, em vez de silenciosamente não pontuar.
- Uma edição precisa alterar ao menos um campo; uma alteração vazia é recusada em vez de aceita como operação sem efeito.
A seguir
Última verificação no commit d3c2586b (2026-08-03)