use of io.zulia.client.result.SearchResult in project zuliasearch by zuliaio.
the class SortTest method starsSort.
@Test
@Order(3)
public void starsSort() throws Exception {
SearchResult searchResult;
Search search = new Search(INDEX_NAME).setAmount(10);
String field = "stars";
// 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, searchResult.getFirstDocument().get(field));
search.clearSort();
// default missing first
search.addSort(new Sort(field).descending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(4, searchResult.getFirstDocument().get(field));
search.clearSort();
search.addSort(new Sort(field).descending().missingFirst());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(4, 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.result.SearchResult in project zuliasearch by zuliaio.
the class SortTest method multiIndexTest.
@Test
@Order(14)
public void multiIndexTest() throws Exception {
ClientIndexConfig indexConfig = new ClientIndexConfig();
indexConfig.addDefaultSearchField("magicNumber");
indexConfig.addFieldConfig(FieldConfigBuilder.create("id", FieldType.NUMERIC_INT).sort());
indexConfig.addFieldConfig(FieldConfigBuilder.create("magicNumber", FieldType.NUMERIC_INT).index().sort());
indexConfig.setIndexName("anotherIndex");
indexConfig.setNumberOfShards(1);
// force some commits
indexConfig.setShardCommitInterval(20);
zuliaWorkPool.createIndex(indexConfig);
indexConfig.setIndexName("anotherIndex2");
zuliaWorkPool.createIndex(indexConfig);
for (int id = 0; id < 200; id++) {
int magicNumber = 7;
if (id > 10) {
magicNumber = -1;
}
Document mongoDocument = new Document().append("id", id).append("magicNumber", magicNumber);
zuliaWorkPool.store(new Store(id + "", "anotherIndex", ResultDocBuilder.from(mongoDocument)));
}
for (int id = 0; id < 100; id++) {
int magicNumber = (id % 10) + 5;
Document mongoDocument = new Document().append("id", id).append("magicNumber", magicNumber);
zuliaWorkPool.store(new Store(id + "", "anotherIndex2", ResultDocBuilder.from(mongoDocument)));
}
SearchResult searchResult;
Search search = new Search("anotherIndex", "anotherIndex2").setAmount(1);
search.addSort(new Sort("magicNumber"));
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(-1, searchResult.getFirstDocument().get("magicNumber"));
search.clearSort();
search.addSort(new Sort("magicNumber").descending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(14, searchResult.getFirstDocument().get("magicNumber"));
}
use of io.zulia.client.result.SearchResult in project zuliasearch by zuliaio.
the class SortTest method titleSort.
@Test
@Order(2)
public void titleSort() throws Exception {
SearchResult searchResult;
Search search = new Search(INDEX_NAME).setAmount(10);
// default ascending missing first
search.addSort(new Sort("title"));
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get("title"));
search.clearSort();
// default missing first
search.addSort(new Sort("title").ascending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get("title"));
search.clearSort();
search.addSort(new Sort("title").ascending().missingFirst());
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get("title"));
search.clearSort();
search.addSort(new Sort("title").ascending().missingLast());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals("a special title", searchResult.getFirstDocument().get("title"));
search.clearSort();
// default missing first
search.addSort(new Sort("title").descending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals("some title", searchResult.getFirstDocument().get("title"));
search.clearSort();
search.addSort(new Sort("title").descending().missingFirst());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals("some title", searchResult.getFirstDocument().get("title"));
search.clearSort();
search.addSort(new Sort("title").descending().missingLast());
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get("title"));
}
use of io.zulia.client.result.SearchResult in project zuliasearch by zuliaio.
the class SortTest method scoreSort.
@Test
@Order(9)
public void scoreSort() throws Exception {
SearchResult searchResult;
Search search = new Search(INDEX_NAME).setAmount(10).addQuery(new ScoredQuery("title:special OR title:secret"));
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals("40", searchResult.getFirstDocument().get("id"));
search.clearSort();
// default ascending
search.addSort(new Sort(ZuliaConstants.SCORE_FIELD));
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals("30", searchResult.getFirstDocument().get("id"));
search.clearSort();
search.addSort(new Sort(ZuliaConstants.SCORE_FIELD).descending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals("40", searchResult.getFirstDocument().get("id"));
}
use of io.zulia.client.result.SearchResult in project zuliasearch by zuliaio.
the class SortTest method ratingSort.
@Test
@Order(5)
public void ratingSort() throws Exception {
SearchResult searchResult;
Search search = new Search(INDEX_NAME).setAmount(10);
String field = "rating";
// 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);
// mongodb bson does not support float so it comes back as a double, the search engine is indexing in float precision however
Assertions.assertEquals(1.1f, (double) searchResult.getFirstDocument().get(field), 0.001f);
search.clearSort();
// default missing first
search.addSort(new Sort(field).descending());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(5.0f, (double) searchResult.getFirstDocument().get(field), 0.001f);
search.clearSort();
search.addSort(new Sort(field).descending().missingFirst());
searchResult = zuliaWorkPool.search(search);
Assertions.assertEquals(5.0f, (double) searchResult.getFirstDocument().get(field), 0.001f);
search.clearSort();
search.addSort(new Sort(field).descending().missingLast());
searchResult = zuliaWorkPool.search(search);
Assertions.assertNull(searchResult.getFirstDocument().get(field));
}
Aggregations