본문 바로가기

SearchEngine

[Java] Map과 List로 검색엔진 구현해보기 -3- 이 주제에 대한 마지막 글입니다. 이전에 Indexing 부분까지 작성하고 까먹고 있었네요.. --ㅋ 이전 포스트까지 문서를 Indexing하고 해당 문서를 저장하여 두는 Store까지 살펴보았습니다. 간단하게 요약하면 문서의 내용을 분석하여 키워드를 추출하고, 그 키워드를 필드별로 해당 키워드를 가진 문서번호(내부적인 unique number)와 연결하여 인덱스 파일에 저장해두는 개념이었습니다. 그렇다면 검색은 어떤 방식일까요? 키워드를 통해 위 인덱스파일에서 문서번호를 검색하여 리턴하는 구조가 될 것 입니다. IndexSearcher.java 인덱스파일은 변경이 될 수 있도록 외부에서 인덱스파일을 셋팅 할 수 있도록 하였습니다. 소스의 간소화를 위해 "제목"과 "본문" 필드에 대해서 키워드로 검색을 .. 더보기
[Java] Map과 List로 검색엔진 구현해보기 -2- 앞서 말씀드린대로 검색엔진의 가장 기본적인 구조와 자바에 대한 기초 교육을 겸하려했던 예제입니다. 우선 Map과 List로 검색엔진의 원리를 구현하려면 우선 검색엔진에서의 역인덱스 구조에 대해서 알아야 합니다. 제 블로그에서도 몇 번 언급은 되었었지만 간단하게 말씀드리면 문서들로부터 키워드를 추출하고 그 키워드가 어느 문서에 있는지를 기록해 둔 형태입니다. 책을 사면 맨 앞에 목차(INDEX)가 있고 일반적으로 맨 뒤에 보면 키워드와 해당 키워드의 내용이 있는 페이지가 들어있는 부록이 있는데 이것이 역인덱스 구조입니다. 순서보다는 원하는 키워드로 찾고자 하는 내용을 가장 빠르게 접근 할 수 있는 구조로 되어있습니다. 이것을 Map과 List로 구현한다고 하면... Map의 Key가 키워드가 될 것이고 V.. 더보기