Elasticsearch는 이메일 주소와 전화번호의 퍼지 일치를 위한 내장 기능을 제공합니다.
특정 도메인(예: @gmail.com)으로 끝나는 이메일 주소를 일치시키려면:
{
"query": {
"term": {
"email": ".*@gmail.com"
}
}
}
또는 특정 문자열이 포함된 이메일을 일치시키려면:
{
"query": {
"match": {
"email": {
"query": "sales@*",
"operator": "and"
}
}
}
}
전화번호의 퍼지 일치를 위해 다음 패턴을 사용할 수 있습니다.
{
"query": {
"prefix": {
"tel": "136*"
}
}
}
이것은 "136"으로 시작하는 모든 전화번호와 일치합니다.
퍼지 매칭 성능을 향상하려면 n-gram 또는 에지 N-그램 토큰 필터. 이러한 필터는 텍스트를 더 작은 토큰으로 분해하여 Elasticsearch가 퍼지 일치를 더 쉽게 수행할 수 있도록 해줍니다.
이메일 분석기 구성:
{
"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"
}
}
}
}
}
전화 분석기 구성:
{
"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"
]
}
}
}
}
}
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3