Elasticsearch는 이메일 주소와 전화번호의 퍼지 매칭을 위한 내장 기능을 제공합니다.
특정 도메인(예: @gmail.com)으로 끝나는 이메일 주소를 일치시키려면:
<code class="json">{ "query": { "term": { "email": ".*@gmail.com" } } }</code>
또는 특정 문자열이 포함된 이메일을 일치시키려면:
<code class="json">{ "query": { "match": { "email": { "query": "sales@*", "operator": "and" } } } }</code>
전화번호의 퍼지 매칭을 위해 다음 패턴을 사용할 수 있습니다.
<code class="json">{ "query": { "prefix": { "tel": "136*" } } }</code>
이렇게 하면 "136"으로 시작하는 모든 전화번호가 매칭됩니다.
퍼지 매칭 성능을 향상하려면 n-gram 또는 edge n-gram 토큰 필터를 활용하는 사용자 지정 분석기를 사용하는 것이 좋습니다. 이러한 필터는 텍스트를 더 작은 토큰으로 분할하여 Elasticsearch가 퍼지 일치를 더 쉽게 수행할 수 있도록 해줍니다.
이메일 분석기 구성:
<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>
전화 분석기 구성:
<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>
위 내용은 Elasticsearch를 사용하여 이메일 주소와 전화번호의 퍼지 매칭을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!