Maison > Article > base de données > Comment effectuer une correspondance floue des adresses e-mail et des numéros de téléphone à l'aide d'Elasticsearch ?
Elasticsearch offre des fonctionnalités intégrées pour la correspondance floue d'adresses e-mail et de numéros de téléphone.
Pour faire correspondre les adresses e-mail se terminant par un domaine spécifique (par exemple, @gmail.com) :
<code class="json">{ "query": { "term": { "email": ".*@gmail.com" } } }</code>
Ou, pour faire correspondre les e-mails contenant une chaîne spécifique :
<code class="json">{ "query": { "match": { "email": { "query": "sales@*", "operator": "and" } } } }</code>
Pour une correspondance floue des numéros de téléphone, vous pouvez utiliser le modèle suivant :
<code class="json">{ "query": { "prefix": { "tel": "136*" } } }</code>
Cela correspondra à tous les numéros de téléphone commençant par « 136 ».
Pour améliorer les performances de correspondance floue, envisagez d'utiliser des analyseurs personnalisés qui exploitent les filtres de jetons n-gram ou Edge n-gram. Ces filtres décomposent le texte en jetons plus petits, ce qui permet à Elasticsearch d'effectuer plus facilement une correspondance floue.
Configuration de l'analyseur d'e-mail :
<code class="json">{ "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" } } } } }</code>
Analyseur téléphonique Configuration :
<code class="json">{ "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" ] } } } } }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!