mirror of
https://github.com/querydsl/querydsl.git
synced 2026-07-03 21:07:49 +08:00
Added support for querying without where(...) + formatting.
This commit is contained in:
parent
4437ee8a87
commit
06e155e5bb
@ -9,6 +9,7 @@ import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.lucene.document.Document;
|
||||
import org.apache.lucene.search.MatchAllDocsQuery;
|
||||
import org.apache.lucene.search.Query;
|
||||
import org.apache.lucene.search.ScoreDoc;
|
||||
import org.apache.lucene.search.Searcher;
|
||||
@ -30,7 +31,7 @@ import com.mysema.query.types.Predicate;
|
||||
|
||||
/**
|
||||
* LuceneQuery is a Querydsl query implementation for Lucene queries.
|
||||
*
|
||||
*
|
||||
* @author vema
|
||||
*/
|
||||
public class LuceneQuery implements SimpleQuery<LuceneQuery>,
|
||||
@ -52,7 +53,7 @@ public class LuceneQuery implements SimpleQuery<LuceneQuery>,
|
||||
public LuceneQuery(final Searcher searcher) {
|
||||
this(LuceneSerializer.DEFAULT, searcher);
|
||||
}
|
||||
|
||||
|
||||
private long innerCount(){
|
||||
try {
|
||||
final int maxDoc = searcher.maxDoc();
|
||||
@ -62,22 +63,22 @@ public class LuceneQuery implements SimpleQuery<LuceneQuery>,
|
||||
return searcher.search(createQuery(), maxDoc).totalHits;
|
||||
} catch (final IOException e) {
|
||||
throw new QueryException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public long count() {
|
||||
return innerCount();
|
||||
return innerCount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long countDistinct() {
|
||||
return innerCount();
|
||||
return innerCount();
|
||||
}
|
||||
|
||||
private Query createQuery() {
|
||||
if (queryMixin.getMetadata().getWhere() == null) {
|
||||
throw new QueryException("Where clause was null.");
|
||||
return new MatchAllDocsQuery();
|
||||
}
|
||||
return serializer.toQuery(queryMixin.getMetadata().getWhere(),
|
||||
queryMixin.getMetadata());
|
||||
@ -131,14 +132,14 @@ public class LuceneQuery implements SimpleQuery<LuceneQuery>,
|
||||
public CloseableIterator<Document> iterateDistinct() {
|
||||
return iterate();
|
||||
}
|
||||
|
||||
|
||||
private List<Document> innerList(){
|
||||
return new IteratorAdapter<Document>(iterate()).asList();
|
||||
return new IteratorAdapter<Document>(iterate()).asList();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<Document> list() {
|
||||
return innerList();
|
||||
return innerList();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -218,10 +218,10 @@ public class LuceneSerializerTest {
|
||||
|
||||
@Test
|
||||
public void eq_Numeric() throws Exception{
|
||||
testQuery(longField.eq(1l), "longField:" + LONG_PREFIX_CODED, 1);
|
||||
testQuery(shortField.eq((short)1), "shortField:" + SHORT_PREFIX_CODED, 1);
|
||||
testQuery(byteField.eq((byte)1), "byteField:" + BYTE_PREFIX_CODED, 1);
|
||||
testQuery(floatField.eq((float)1.0), "floatField:" + FLOAT_PREFIX_CODED, 1);
|
||||
testQuery(longField.eq(1l), "longField:" + LONG_PREFIX_CODED, 1);
|
||||
testQuery(shortField.eq((short)1), "shortField:" + SHORT_PREFIX_CODED, 1);
|
||||
testQuery(byteField.eq((byte)1), "byteField:" + BYTE_PREFIX_CODED, 1);
|
||||
testQuery(floatField.eq((float)1.0), "floatField:" + FLOAT_PREFIX_CODED, 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@ -47,9 +47,9 @@ import com.mysema.query.types.path.StringPath;
|
||||
|
||||
/**
|
||||
* Tests for LuceneQuery
|
||||
*
|
||||
*
|
||||
* @author vema
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class LuceneQueryTest {
|
||||
|
||||
@ -131,9 +131,8 @@ public class LuceneQueryTest {
|
||||
searcher.close();
|
||||
}
|
||||
|
||||
@Test(expected = QueryException.class)
|
||||
public void count_Empty_Where_Clause() {
|
||||
query.count();
|
||||
assertEquals(4, query.count());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -521,6 +520,10 @@ public class LuceneQueryTest {
|
||||
++count;
|
||||
}
|
||||
assertEquals(4, count);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void All_By_Excluding_Where() {
|
||||
assertEquals(4, query.list().size());
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user