use of io.zulia.client.command.builder.Sort in project zuliasearch by zuliaio.
the class SortTest method boolSort.
@Test
@Order(7)
public void boolSort() throws Exception {
SearchResult searchResult;
Search search = new Search(INDEX_NAME).setAmount(10);
String field = "special";
// default ascending missing first
search.addSort(new Sort(field));
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get(field));
search.clearSort();
// default missing first
search.addSort(new Sort(field).ascending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get(field));
search.clearSort();
search.addSort(new Sort(field).ascending().missingFirst());
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get(field));
search.clearSort();
search.addSort(new Sort(field).ascending().missingLast());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(false, searchResult.getFirstDocument().get(field));
search.clearSort();
// default missing first
search.addSort(new Sort(field).descending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(true, searchResult.getFirstDocument().get(field));
search.clearSort();
search.addSort(new Sort(field).descending().missingFirst());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(true, searchResult.getFirstDocument().get(field));
search.clearSort();
search.addSort(new Sort(field).descending().missingLast());
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get(field));
}
use of io.zulia.client.command.builder.Sort in project zuliasearch by zuliaio.
the class StartStopTest method sortScoreBuilder.
@Test
@Order(3)
public void sortScoreBuilder() throws Exception {
Search search = new Search(FACET_TEST_INDEX).setAmount(10);
search.addQuery(new ScoredQuery("issn:\"1234-1234\" OR country:US"));
search.addSort(new Sort(ZuliaConstants.SCORE_FIELD).ascending());
SearchResult searchResult = zuliaWorkPool.search(search);
double lowScore = -1;
double highScore = -1;
for (ZuliaQuery.ScoredResult result : searchResult.getResults()) {
Assertions.assertTrue(result.getScore() > 0);
if (lowScore < 0 || result.getScore() < lowScore) {
lowScore = result.getScore();
}
}
search.clearSort();
search.addSort(new Sort(ZuliaConstants.SCORE_FIELD).descending());
searchResult = zuliaWorkPool.search(search);
for (ZuliaQuery.ScoredResult result : searchResult.getResults()) {
Assertions.assertTrue(result.getScore() > 0);
if (highScore < 0 || result.getScore() > highScore) {
highScore = result.getScore();
}
}
Assertions.assertTrue(highScore > lowScore);
}
use of io.zulia.client.command.builder.Sort in project zuliasearch by zuliaio.
the class StartStopTest method lengthTestBuilder.
@Test
@Order(3)
public void lengthTestBuilder() throws Exception {
Search s = new Search(FACET_TEST_INDEX);
SearchResult searchResult = zuliaWorkPool.search(s);
long total = searchResult.getTotalHits();
s = new Search(FACET_TEST_INDEX).addQuery(new FilterQuery("|country|:2"));
searchResult = zuliaWorkPool.search(s);
Assertions.assertEquals(total / 2, searchResult.getTotalHits());
s = new Search(FACET_TEST_INDEX).addQuery(new FilterQuery("|country|:[0 TO 1]"));
searchResult = zuliaWorkPool.search(s);
Assertions.assertEquals(0, searchResult.getTotalHits());
s = new Search(FACET_TEST_INDEX).addQuery(new FilterQuery("|||testList|||:3"));
searchResult = zuliaWorkPool.search(s);
Assertions.assertEquals(total / 2, searchResult.getTotalHits());
s = new Search(FACET_TEST_INDEX).addQuery(new FilterQuery("|||testList|||:[2 TO 3]"));
searchResult = zuliaWorkPool.search(s);
Assertions.assertEquals(total, searchResult.getTotalHits());
s = new Search(FACET_TEST_INDEX).setAmount((int) total / 2).addSort(new Sort("|country|"));
searchResult = zuliaWorkPool.search(s);
for (Document document : searchResult.getDocuments()) {
Assertions.assertEquals(document.getString("country"), "US");
}
s = new Search(FACET_TEST_INDEX).setAmount((int) total / 2).addSort(new Sort("|country|").descending());
searchResult = zuliaWorkPool.search(s);
for (Document document : searchResult.getDocuments()) {
Assertions.assertEquals(document.getString("country"), "France");
}
}
use of io.zulia.client.command.builder.Sort in project zuliasearch by zuliaio.
the class SortTest method ratingDoubleSort.
@Test
@Order(6)
public void ratingDoubleSort() throws Exception {
SearchResult searchResult;
Search search = new Search(INDEX_NAME).setAmount(10);
String field = "ratingDouble";
// default ascending missing first
search.addSort(new Sort(field));
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get(field));
search.clearSort();
// default missing first
search.addSort(new Sort(field).ascending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get(field));
search.clearSort();
search.addSort(new Sort(field).ascending().missingFirst());
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get(field));
search.clearSort();
search.addSort(new Sort(field).ascending().missingLast());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(1.1d, (double) searchResult.getFirstDocument().get(field), 0.001d);
search.clearSort();
// default missing first
search.addSort(new Sort(field).descending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(Float.MAX_VALUE + 1000000d, (double) searchResult.getFirstDocument().get(field), 0.001d);
search.clearSort();
search.addSort(new Sort(field).descending().missingFirst());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(Float.MAX_VALUE + 1000000d, (double) searchResult.getFirstDocument().get(field), 0.001d);
search.clearSort();
search.addSort(new Sort(field).descending().missingLast());
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get(field));
}
use of io.zulia.client.command.builder.Sort in project zuliasearch by zuliaio.
the class SortTest method compoundSort.
@Test
@Order(10)
public void compoundSort() throws Exception {
Search search = new Search(INDEX_NAME).setAmount(10);
search.addSort(new Sort("stars").descending());
// ascending is default but to be clear
search.addSort(new Sort("rating").ascending());
SearchResult searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(4, searchResult.getFirstDocument().get("stars"));
Assertions.assertEquals(1.1f, (double) searchResult.getFirstDocument().get("rating"), 0.001f);
}
Aggregations