NORMALIZE_UNICODE - Normalização Unicode (Remove Acentos)
O que é esta operação?
A operação NORMALIZE_UNICODE decompõe caracteres acentuados e remove diacríticos, convertendo "José" para "Jose", "São" para "Sao", etc.
Por que esta operação existe?
Acentos podem causar problemas em matching e buscas. Esta operação existe para:
- Busca Tolerante: Permitir que "jose" encontre "José" em buscas
- Normalização de Nomes: Padronizar nomes para comparação (Silva = Silva)
- Compatibilidade ASCII: Remover acentos para sistemas que só suportam ASCII
- URLs Amigáveis: Criar slugs sem caracteres especiais (São Paulo → Sao-Paulo)
Como funciona internamente?
Código interno (content-cleaner-executor.service.ts:275-278):
// Normalize unicode (NFD - decompose accents)
if (config.normalizeUnicode === true) {
cleaned = cleaned.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
}
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| inputVariable | string | Sim | Variável contendo o texto |
| normalizeUnicode | boolean | Não | Normaliza e remove acentos (padrão: false) |
| outputVariable | string | Não | Variável para resultado |
Exemplo: Normalização para Busca
{
"name": "Normalizar para Busca",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "input_1",
"type": "input",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Digite Nome",
"parameters": {
"message": "Digite o nome para buscar:",
"variableName": "search_name"
}
}
},
{
"id": "cleaner_1",
"type": "content_cleaner",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Normalizar",
"parameters": {
"inputVariable": "search_name",
"normalizeUnicode": true,
"toLowerCase": true,
"trimWhitespace": true,
"outputVariable": "normalized_search"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Buscar",
"parameters": {
"message": "🔍 Buscando: {{normalized_search}}\n\n(Original: {{search_name}})"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 900, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "cleaner_1" },
{ "source": "cleaner_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída:
Digite o nome para buscar:
> José Silva
🔍 Buscando: jose silva
(Original: José Silva)
Boas Práticas
✅ SIM: Buscas case-insensitive, geração de slugs, normalização de nomes para matching ❌ NÃO: Documentos formais onde acentuação correta é importante
Dicas
💡 Dica 1: Usa normalização NFD (Canonical Decomposition) seguida de remoção de diacríticos
💡 Dica 2: Combine com toLowerCase para normalização completa de buscas
💡 Dica 3: Útil para criar índices de busca tolerantes a acentos
Próximo Node
→ TO_LOWERCASE - Converte para minúsculas → REMOVE_SPECIAL_CHARS - Remove caracteres especiais