2017-10-23 4 views
0

내 BooleanQuery에 적어도 하나의 일치하는 문서가 있는지 알아야합니다. 일치하는 문서의 총 수에 대해서는 신경 쓰지 않습니다. 적어도 하나 이상의 일치가 있다는 것만입니다. 현재 IndexSearcher.Search(...)n = 1과 함께 사용하고 있지만 더 효율적인 방법이 있는지 알고 싶습니다.Lucene 쿼리에 적어도 하나 이상의 결과가 효율적으로 있는지 확인하는 방법은 무엇입니까?

n = 1으로 설정하면 TotalHits이 올바른 값 (즉, 1보다 클 수 있음)으로 설정되므로 Lucene이 필요없는 추가 작업을한다고 의심됩니다.

더 좋은 방법이 있나요?

P. Lucene .NET 3.0.3을 사용하고 있습니다.

답변

1

Lucene은 각 문서를 검색하여 조회수를 결정하지 않습니다. 일치하는 문서를 다시 참조하는 색인을 검색합니다. 책의 인덱스에 대한 생각 :

Cats . . . . . 5, 8, 9, 10 
Dogs . . . . . 5, 6, 11, 12 
Horses . . . . 5, 8, 12, 13, 14 

나는 "고양이 및 말"찾고 있어요 경우는, "정말 대"1 개 이상의 안타를 "나에게 필요한 일의 양에 큰 차이가없는 2 히트 ".


"should"절이 가득 찬 부울 쿼리에서 단락하는 한,이 작업을 수행하는 쿼리 클래스는 알지 못합니다. field:simpleterm field:*slowwildcardquery*과 같은 쿼리가 있고 간단한 용어 쿼리에 일치하는 항목이있는 경우 큰 느린 와일드 카드 쿼리를 평가하지 않으려면 별도의 검색으로 실행해야합니다. 첫 번째 조회수가 반환되지 않으면 두 번째 조회수를 실행하십시오.

+0

설명해 주셔서 감사합니다. 그때 내 원래의 쿼리로 스틱 것이다 :) – HelloWorld