서비스를 운영 중에, 특정 상황에 대해서 검색이 안되는 이슈가 발생했고, 해당 상황을 조사하는 내용을 정리하고자 한다.
검색어는 에어텔이며 에어텔이 포함된 몇몇 문서가 검색이 되질 않았다.
사용자사전
미등록 상태에어텔
이 포함된 모든 문서가 노출이 안되거나, 모두 노출이 되어야 하는데 일부만 노출됨에어텔 ~~
로 시작되는 문서는 노출~~ 에어텔
로 종료되는 문서는 비노출미노출 문서 분해 결과 에어텔 부분:
{
"token" : "에",
"start_offset" : 19,
"end_offset" : 20,
"type" : "word",
"position" : 12
},
{
"token" : "어",
"start_offset" : 20,
"end_offset" : 21,
"type" : "word",
"position" : 13
},
{
"token" : "텔",
"start_offset" : 21,
"end_offset" : 22,
"type" : "word",
"position" : 14
}
노출 문서 분해 결과 에어텔 부분:
{
"token" : "에어",
"start_offset" : 0,
"end_offset" : 2,
"type" : "word",
"position" : 0
},
{
"token" : "텔",
"start_offset" : 2,
"end_offset" : 3,
"type" : "word",
"position" : 1
}
검색어 분해결과 에어텔 부분:
{
"token" : "에어",
"start_offset" : 0,
"end_offset" : 2,
"type" : "word",
"position" : 0
},
{
"token" : "텔",
"start_offset" : 2,
"end_offset" : 3,
"type" : "word",
"position" : 1
}
분해결과를 통해, 분석이 다르게 되고 있음을 알 수 있다. 노출이 되고 안되고의 가장 큰 차이는 문서의 에어텔
위치가 앞에 있거나 뒤에 있거나의 차이이다.
확인 결과, 에어텔
이 뒤에 있고, 그 앞의 단어가 명사가 올 경우, 에어텔의 에
가 [~~에]
형태인 전치사(J)
로 분해가 되어 버린다.
상황에 따라 감탄사(IC)로도 분해가 된다.
즉, 앞 단어가 명사
나 대명사
로 인식하게 되면 에어텔은 [에, 어, 텔]로 분해가 이루어지게 되고, 앞 단어가 알수없는(Unknown)
경우 에어텔이 분해의 첫단어로 인식이 되어 [에어, 텔]로 분해가 되는 것이다.
호텔 에어텔
→ 호텔(NNG) + 에(J) + 어(IC) + 텔(NNG)
컄향 에어텔
→ 컄향(UNKNOWN) + 에어(NNG) + 텔(NNG)