2012-12-27 3 views
2

Lucene.net 필터가 검색 공간을 제한하는지 또는 필터가 반환 한 문서를 기반으로 검색 일치에서 문서를 제외할지 여부를 결정하려고합니다. 즉, 필터가 문서 A, B 및 C는 허용하지만 D 및 E는 허용하지 않고 사용자의 쿼리가 B, C 및 D와 일치하는 경우 필터가 D가 쿼리 일치로 간주되지 않거나 쿼리가 일치하는 항목에는 B, C 및 D가 포함 된 다음 쿼리가 실행 된 후 필터에서 D가 제외됩니다. 나는이 정면의 어느 곳에서나 결정적인 정보를 찾지 못한다. 가장 가까운 것은 1 년 반 전의이 게시물입니다. http://java.dzone.com/news/fast-lucene-search-filters은 쿼리 일치가 반환 된 후에 필터가 적용된다고 제안합니다. Lucene.net이 아니라 Lucene.net의 현재 버전을 사용하고 있습니다.Lucene.net 필터 : 초기 검색 공간을 제한하거나 필터링 된 문서를 검색 결과에서 제외합니까?

+0

Lucene.net은 거의 루신 자바의 정확한 포트입니다. 이런 종류의 것들은 두 버전 모두에서 정확히 동일하게 작동합니다. –

답변

1

현재 Lucene.Net, 필터는 쿼리 실행 후 적용됩니다. 따라서 필터로 제외 된 문서는 여전히 쿼리 조건에 따라 점수가 매겨지고 결과 집합에서 제거됩니다.

자세한 내용은 4.x에서 변경됩니다 (Lucene-1536 참조).

이제 필터를 사용할 가치가 있는지 물어볼 수 있습니다. 재사용을 위해 필터를 캐싱하면 대답은 '예'입니다.

+0

내가 사용할 수있는 쿼리가 이미 유효한 문서 ID가 있다면 어떻게합니까? 이 경우에는 필터를 사용하는 ID와 일치하지 않는 것을 버리는 자체 수집기를 작성하는 것 사이에 어떤 차이가 있습니까? – balazs

+0

이 경우 개인적으로 커스텀 컬렉터 접근 방식을 사용합니다. –