'crescent 수정리스트'에 해당되는 글 2건

  1. 2012.12.08 [crescent] 12/8 기능추가
  2. 2012.10.22 [Crescent] 10월 22일 수정리스트 (2)

새벽에 일어나서.. Filter 기능을 추가하였습니다.


### Crescent에서는 Query보다 더 빠른 검색을 위해 Filter를 제공합니다.

### 형태는 CustomQuery와 동일한 문법을 사용합니다.

### 파라메터명은 ft입니다.


예제>

search.devys?col_name=sample&keyword=나이키&ft=title:"운동화"


search.devys?col_name=sample&keyword=나이키&ft=create_date:"[20120101 TO 20120130]"


쿼리와의 차이점은 검색에서 제외되는 document들이 ranking을 결정하는데 영향을 주냐 안 주냐의 차이입니다.

예를들어 아래와 같이 2개의 document가 있다고 가정하면..


1) 장소:"한국", "서울" 본문:"저는 서울에 삽니다.", "서울 좋아요"

2) 장소:"서울 노원", "서울 남대문", "서울" 본문: "저는 서울이 좋아요"


query=+장소:"서울" +본문:"서울" 

일 경우에는 2번의 document가 1번보다 높은 점수를 받습니다. "서울"이라는 단어의 빈도수가 더 많기 때문입니다.


하지만, 아래의 쿼리

query=+본문"서울" flter=+장소:"서울"

의 경우는 1번의 document 점수가 더 높습니다. 왜냐하면 장소는 ranking을 계산하는 로직에서 제외되고

본문으로만 점수가 결정되는데, 1번의 document의 본문이 더 짧기 때문입니다. (같은 term freq일 경우 해당 문서의 내용이 짧을수록 점수가 높습니다.)


다만, 특정 필드로 정렬을 하는 경우에는 위와같이 ranking에 영향을 받는 경우는 없을것이지만 속도나 캐시측면에서

filter를 사용하는 것은 괜찮은 방법입니다.


그리고, 클래스명에 오타가 있는 것 하나 수정...


Posted by 용식

1. 증분색인 기능을 구현하여 실시간으로 Update, Delete가 일어나게 되는 경우

에러가 발생 할 수 있는 버그를 발견하여 이를 수정하면서 Lucene에서 기본으로 제공되는 SearcherManager를 적용하였습니다. (3.5 버전부터 제공) 이 클래스에 대해서는 NRTManager와 함께 별도로 포스팅을 해볼 예정입니다. 


테스트 할 것이 꽤 많아 보여요... (좋아보입니다..^^)



2. 결과 JsonForm에 들어오는 error_code, error_msg의 생성 로직을 수정하였습니다.


https://github.com/need4spd/crescent

https://github.com/need4spd/lucene-korean-analyzer

Posted by 용식