Search in sources :

Example 1 with Sort

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));
}
Also used : Search(io.zulia.client.command.builder.Search) Sort(io.zulia.client.command.builder.Sort) SearchResult(io.zulia.client.result.SearchResult) Order(org.junit.jupiter.api.Order) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) Test(org.junit.jupiter.api.Test)

Example 2 with Sort

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);
}
Also used : ScoredQuery(io.zulia.client.command.builder.ScoredQuery) Search(io.zulia.client.command.builder.Search) ZuliaQuery(io.zulia.message.ZuliaQuery) Sort(io.zulia.client.command.builder.Sort) SearchResult(io.zulia.client.result.SearchResult) Order(org.junit.jupiter.api.Order) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) Test(org.junit.jupiter.api.Test)

Example 3 with Sort

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");
    }
}
Also used : Search(io.zulia.client.command.builder.Search) FilterQuery(io.zulia.client.command.builder.FilterQuery) Sort(io.zulia.client.command.builder.Sort) SearchResult(io.zulia.client.result.SearchResult) Document(org.bson.Document) Order(org.junit.jupiter.api.Order) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) Test(org.junit.jupiter.api.Test)

Example 4 with Sort

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));
}
Also used : Search(io.zulia.client.command.builder.Search) Sort(io.zulia.client.command.builder.Sort) SearchResult(io.zulia.client.result.SearchResult) Order(org.junit.jupiter.api.Order) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) Test(org.junit.jupiter.api.Test)

Example 5 with Sort

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);
}
Also used : Search(io.zulia.client.command.builder.Search) Sort(io.zulia.client.command.builder.Sort) SearchResult(io.zulia.client.result.SearchResult) Order(org.junit.jupiter.api.Order) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) Test(org.junit.jupiter.api.Test)

Aggregations

Search (io.zulia.client.command.builder.Search)15 Sort (io.zulia.client.command.builder.Sort)15 SearchResult (io.zulia.client.result.SearchResult)14 Order (org.junit.jupiter.api.Order)13 Test (org.junit.jupiter.api.Test)13 TestMethodOrder (org.junit.jupiter.api.TestMethodOrder)13 ScoredQuery (io.zulia.client.command.builder.ScoredQuery)4 Document (org.bson.Document)3 Reindex (io.zulia.client.command.Reindex)2 FilterQuery (io.zulia.client.command.builder.FilterQuery)2 ClientIndexConfig (io.zulia.client.config.ClientIndexConfig)2 ZuliaQuery (io.zulia.message.ZuliaQuery)2 JCommander (com.beust.jcommander.JCommander)1 ParameterException (com.beust.jcommander.ParameterException)1 ClearIndex (io.zulia.client.command.ClearIndex)1 DeleteIndex (io.zulia.client.command.DeleteIndex)1 GetIndexes (io.zulia.client.command.GetIndexes)1 GetNodes (io.zulia.client.command.GetNodes)1 GetNumberOfDocs (io.zulia.client.command.GetNumberOfDocs)1 OptimizeIndex (io.zulia.client.command.OptimizeIndex)1