오픈소스검색엔진Lucene활용 (rev. 1.2)
루씬은? ¶
- 자바로 만들어진 오픈소스 풀 텍스트 검색 엔진
- 여러가지로 활용도 많이 되고 되게 유명한거 같다.
활용 분야는? ¶
- 검색이 필요한 모든 분야에 활용 가능
- 예 -> 위키의 내용 검색, 인트라넷, 데스크탑 검색, 그룹 웨어 등등
한글 지원은? ¶
- 지원 된다. 하지만 SearchFiles.java 예제 소스를 조금 수정 해야 한다.
in = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));
이부분을
in = new BufferedReader(new InputStreamReader(System.in));
이렇게 바꾼다.
Query query = QueryParser.parse(line, field, analyzer);
이 부분도
Query query = QueryParser.parse(line+"*", field, analyzer);
이렇게 바꾼다.
- 위와 같이 하면 한글 검색이 잘된다.
- 쿼리에 별표를 붙이는 이유는 한글은 저기서 사용하는 분석기는 빈 공간을 중심으로 토큰을 나눈다. 한글도 빈 공간을 중심으로 나누는데 우리가 검색 하고자 하는 중요한 것들을 거의 대부분 앞 글자에 나온다. 그렇다고 그 글자만 치면 검색이 안된다. 하지만 "*"( 검색에서 모든 문자를 의미하는것) 를 뒤에 붙이면 해당 단어 뒤에 어떠한 단어든 붙어 있는 절들이 검색이 될 수 있다. 현재까지는 이러한 방법으로 문제 생기는 것은 없었음.
진행 상황 ¶
날짜 | 진행된 내용 |
3/16 | 한글 검색 및 인덱스 구성 검색 완료, JSP를 통한 웹 서비스 테스트 완료 |
3/24 | 이게 리눅스에서는 UTF-8 이어야만 제대로 돌아가기에 위키를 UTF-8로 컨버팅 중... |