루씬 Query

dev/검색 2008/01/21 17:08

루씬에 내장된 Query 기능은 다양하다.
그중, 몇가지 한글 문서 검색에 사용할 수 있을 만한 Query Class를 살펴보면 다음과 같다.

1. Term Query.
   단순히 특정 필드에 특정 term이 존재하는 document를 검색한다.

2. Range Query.
   특정 필드 값의 시작~끝 범위에 존재하는지 검사한 후, 해당 document를 검색해낸다.

3. Prefix Query.
   문자열의 prefix를 포함하는지 검색하며, 이는 Category별로 분류되어있는 index를 검색할때 유용할 것으로 보인다.

4. Boolean Query.
   몇몇 query를 조합하여 질의가 가능하다. - AND, OR, NOT

5. Phrase Query.
   query term의 인접성을 만족하는 document를 검색해낸다.
   이것은 루씬의 indexing 정보에 각 term의 slop 정보가 포함되어 있기 때문에 가능하다.
   예를 들어 "빠르게 달리는 갈색 머리를 가진 늑대같은 남자"라는 document는
   "갈색", "늑대같은" 사이의 slop이 3이상으로 query 되어야 검색이 된다는 것이다.

6. Wildcard Query
   한글 문서 indexing에서 사용할 수 있을지 고민 중이다.

7. Fuzzy Query
   유사 term 검색용으로서, 특정 term과 비슷한 term을 검색한다.
   유사어, 혹은 speller에 적용 가능할지 검토 중이다.



2008/01/21 17:08 2008/01/21 17:08
Posted by scott
TAG ,

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다

댓글을 달아 주세요

  1. 김영근 2013/07/19 09:52  댓글주소  수정/삭제  댓글쓰기

    Term이라는게 검색어를 말씀하시는 건가요?
    그렇다면 Fuzzy Query로 유사어 또는 연관어를 뽑아낼 수 있다는 말씀이신데 혹시 성공하셨는지?