O Elasticsearch oferece recursos integrados para correspondência difusa de endereços de e-mail e números de telefone.
Para corresponder endereços de e-mail que terminam com um domínio específico (por exemplo, @gmail.com):
{
"query": {
"term": {
"email": ".*@gmail.com"
}
}
}
Ou, para corresponder e-mails contendo uma string específica:
{
"query": {
"match": {
"email": {
"query": "sales@*",
"operator": "and"
}
}
}
}
Para correspondência difusa de números de telefone, você pode usar o seguinte padrão:
{
"query": {
"prefix": {
"tel": "136*"
}
}
}
Isso corresponderá a todos os números de telefone começando com "136".
Para melhorar o desempenho da correspondência difusa, considere usar analisadores personalizados que aproveitam n-gram ou filtros de token de n-grama de borda. Esses filtros dividem o texto em tokens menores, tornando mais fácil para o Elasticsearch realizar correspondência difusa.
Configuração do Email Analyzer:
{
"settings": {
"analysis": {
"analyzer": {
"email_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"name_ngram_filter",
"trim"
]
}
},
"filter": {
"name_ngram_filter": {
"type": "ngram",
"min_gram": "3",
"max_gram": "20"
}
}
}
}
}
Configuração do analisador de telefone:
{
"settings": {
"analysis": {
"analyzer": {
"phone_analyzer": {
"type": "custom",
"char_filter": [
"digit_only"
],
"tokenizer": "digit_edge_ngram_tokenizer",
"filter": [
"trim"
]
}
},
"char_filter": {
"digit_only": {
"type": "pattern_replace",
"pattern": "\\D ",
"replacement": ""
}
},
"tokenizer": {
"digit_edge_ngram_tokenizer": {
"type": "edgeNGram",
"min_gram": "3",
"max_gram": "15",
"token_chars": [
"digit"
]
}
}
}
}
}
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3