새벽에 일어나서.. 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를 사용하는 것은 괜찮은 방법입니다.