서비스를 운영 중에, 특정 상황에 대해서 검색이 안되는 이슈가 발생했고, 해당 상황을 조사하는 내용을 정리하고자 한다.
검색어는 에어텔이며 에어텔이 포함된 몇몇 문서가 검색이 되질 않았다.
사용자사전 미등록 상태에어텔이 포함된 모든 문서가 노출이 안되거나, 모두 노출이 되어야 하는데 일부만 노출됨에어텔 ~~로 시작되는 문서는 노출~~ 에어텔로 종료되는 문서는 비노출미노출 문서 분해 결과 에어텔 부분:
{
"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)