2011-02-15 2 views
4

Java 5 환경에서 Lucene 3.0.1을 사용하고 있습니다. 이 문제를 조금 연구했지만 설명서에 직접적인 대답이 없습니다.Lucene이 무제한으로 검색 결과를 반환하도록 할 수 있습니까?

TopFieldDocs search(Weight weight, Filter filter, int nDocs, Sort sort) 

난 항상 검색 nDocs 결과의 최대 번호를 제공해야 검색 방법을 사용하여

.

일치하는 결과를 모두 원한다면 어떻게해야합니까? 그것은 nDocs to Integer.MAX_VALUE 설정하는 느낌이 일을 해키 방법입니다 (그리고 속도와 메모리 성능 저하의 결과가?).

다른 사람이라면 누구입니까?

답변

6

위로 가기 n 조회를 반환하는 a search method을 사용하고 있습니다.

제한 사항이없는 other (more low-level) methods이 있으며 문서에서 "응용 프로그램은 일치하는 모든 문서가 필요한 경우에만이 API를 사용해야합니다. 상위 수준 검색 API (search (Query, int)) 높은 득점 안타를 건너 뛰기 때문에 일반적으로 더 효율적입니다. "

정말 모든 문서가 필요한 경우 저급 API를 사용할 수 있습니다. 높은 수준의 API에 실제로 높은 한도를 전달하는 것이 성능면에서 큰 차이를 만들지는 모릅니다. 모든 문서가 필요하다면 (그리고 실제로 많은 문서가 필요하다면), 특히 정렬이 관련되어 있다면 어느 쪽이든 속도가 느려질 것입니다.

+1

Thilo에게 감사드립니다. 매우 도움이되었습니다. searcher.maxDoc()를 nDoc으로 사용하는 또 다른 방법을 찾았지만 성능에 영향을 미칠 수 있습니다. –

+0

낮은 수준과 높은 수준의 API의 차이점은 무엇입니까? – Malcolm