Example usage for org.apache.lucene.search SortField setMissingValue

List of usage examples for org.apache.lucene.search SortField setMissingValue

Introduction

In this page you can find the example usage for org.apache.lucene.search SortField setMissingValue.

Prototype

public void setMissingValue(Object missingValue) 

Source Link

Document

Set the value to use for documents that don't have a value.

Usage

From source file:com.epam.catgenome.dao.index.FeatureIndexDao.java

License:Open Source License

private void setMissingValuesOrder(SortField sf, SortField.Type type, boolean desc) {
    switch (type) {
    case STRING:// w ww.  ja  va  2 s  . com
        sf.setMissingValue(desc ? SortField.STRING_FIRST : SortField.STRING_LAST);
        break;
    case FLOAT:
        sf.setMissingValue(Float.MIN_VALUE);
        break;
    case INT:
        sf.setMissingValue(Integer.MIN_VALUE);
        break;
    default:
        throw new IllegalArgumentException("Unexpected sort type: " + type);
    }
}

From source file:com.qwazr.search.field.SortUtils.java

License:Apache License

final static void sortStringMissingValue(QueryDefinition.SortEnum sortEnum, SortField sortField) {
    if (sortEnum == null)
        return;/*from www. ja  va 2s .  co  m*/
    switch (sortEnum) {
    case ascending:
    case descending:
        return;
    case ascending_missing_last:
    case descending_missing_first:
        sortField.setMissingValue(SortField.STRING_LAST);
    case ascending_missing_first:
    case descending_missing_last:
        sortField.setMissingValue(SortField.STRING_FIRST);
    }
}

From source file:com.qwazr.search.field.SortUtils.java

License:Apache License

final static void sortDoubleMissingValue(QueryDefinition.SortEnum sortEnum, SortField sortField) {
    if (sortEnum == null)
        return;//from w  ww. j a v a2  s  .  c  om
    switch (sortEnum) {
    case ascending:
    case descending:
        return;
    case ascending_missing_last:
    case descending_missing_first:
        sortField.setMissingValue(Double.MAX_VALUE);
    case ascending_missing_first:
    case descending_missing_last:
        sortField.setMissingValue(Double.MIN_VALUE);
    }
}

From source file:com.qwazr.search.field.SortUtils.java

License:Apache License

final static void sortLongMissingValue(QueryDefinition.SortEnum sortEnum, SortField sortField) {
    if (sortEnum == null)
        return;//from  w  ww  . j av  a  2  s  .c  o m
    switch (sortEnum) {
    case ascending:
    case descending:
        return;
    case ascending_missing_last:
    case descending_missing_first:
        sortField.setMissingValue(Long.MAX_VALUE);
    case ascending_missing_first:
    case descending_missing_last:
        sortField.setMissingValue(Long.MIN_VALUE);
    }
}

From source file:com.qwazr.search.field.SortUtils.java

License:Apache License

final static void sortFloatMissingValue(QueryDefinition.SortEnum sortEnum, SortField sortField) {
    if (sortEnum == null)
        return;/*from   ww  w. j a  v a2s  . c om*/
    switch (sortEnum) {
    case ascending:
    case descending:
        return;
    case ascending_missing_last:
    case descending_missing_first:
        sortField.setMissingValue(Float.MAX_VALUE);
    case ascending_missing_first:
    case descending_missing_last:
        sortField.setMissingValue(Float.MIN_VALUE);
    }
}

From source file:com.qwazr.search.field.SortUtils.java

License:Apache License

final static void sortIntMissingValue(QueryDefinition.SortEnum sortEnum, SortField sortField) {
    if (sortEnum == null)
        return;// w ww . j  a  v a2  s . co m
    switch (sortEnum) {
    case ascending:
    case descending:
        return;
    case ascending_missing_last:
    case descending_missing_first:
        sortField.setMissingValue(Integer.MAX_VALUE);
    case ascending_missing_first:
    case descending_missing_last:
        sortField.setMissingValue(Integer.MIN_VALUE);
    }
}

From source file:io.crate.execution.engine.collect.collectors.LuceneOrderedDocCollectorTest.java

License:Apache License

private Long[] nextPageQuery(IndexReader reader, FieldDoc lastCollected, boolean reverseFlag,
        @Nullable Boolean nullFirst) throws IOException {
    OrderBy orderBy = new OrderBy(ImmutableList.of(REFERENCE), new boolean[] { reverseFlag },
            new Boolean[] { nullFirst });

    SortField sortField = new SortedNumericSortField("value", SortField.Type.LONG, reverseFlag);
    Long missingValue = (Long) LuceneMissingValue.missingValue(orderBy, 0);
    sortField.setMissingValue(missingValue);
    Sort sort = new Sort(sortField);

    OptimizeQueryForSearchAfter queryForSearchAfter = new OptimizeQueryForSearchAfter(orderBy,
            mock(QueryShardContext.class), name -> valueFieldType);
    Query nextPageQuery = queryForSearchAfter.apply(lastCollected);
    TopFieldDocs result = search(reader, nextPageQuery, sort);
    Long results[] = new Long[result.scoreDocs.length];
    for (int i = 0; i < result.scoreDocs.length; i++) {
        Long value = (Long) ((FieldDoc) result.scoreDocs[i]).fields[0];
        results[i] = value.equals(missingValue) ? null : value;
    }//from ww w  .j a v a2s. c o  m
    return results;
}

From source file:io.crate.operation.collect.collectors.LuceneOrderedDocCollectorTest.java

License:Apache License

private Long[] nextPageQuery(IndexReader reader, FieldDoc lastCollected, boolean reverseFlag,
        @Nullable Boolean nullFirst) throws IOException {
    OrderBy orderBy = new OrderBy(ImmutableList.<Symbol>of(REFERENCE), new boolean[] { reverseFlag },
            new Boolean[] { nullFirst });

    SortField sortField = new SortedNumericSortField("value", SortField.Type.LONG, reverseFlag);
    Long missingValue = (Long) LuceneMissingValue.missingValue(orderBy, 0);
    sortField.setMissingValue(missingValue);
    Sort sort = new Sort(sortField);

    Query nextPageQuery = LuceneOrderedDocCollector.nextPageQuery(lastCollected, orderBy,
            new Object[] { missingValue }, name -> valueFieldType);
    TopFieldDocs result = search(reader, nextPageQuery, sort);
    Long results[] = new Long[result.scoreDocs.length];
    for (int i = 0; i < result.scoreDocs.length; i++) {
        Long value = (Long) ((FieldDoc) result.scoreDocs[i]).fields[0];
        results[i] = value.equals(missingValue) ? null : value;
    }/*from   w  w  w.  ja  v a  2 s.  c  om*/
    return results;
}

From source file:io.crate.operation.collect.LuceneDocCollectorTest.java

License:Apache License

private Long[] nextPageQuery(IndexReader reader, FieldDoc lastCollected, boolean reverseFlag,
        @Nullable Boolean nullFirst) throws IOException {
    OrderBy orderBy = new OrderBy(ImmutableList.<Symbol>of(new Reference(info)), new boolean[] { reverseFlag },
            new Boolean[] { nullFirst });

    SortField sortField = new SortField("value", SortField.Type.LONG, reverseFlag);
    Long missingValue = (Long) LuceneMissingValue.missingValue(orderBy, 0);
    sortField.setMissingValue(missingValue);
    Sort sort = new Sort(sortField);

    Query nextPageQuery = OrderedDocCollector.nextPageQuery(lastCollected, orderBy,
            new Object[] { missingValue });
    TopFieldDocs result = search(reader, nextPageQuery, sort);
    Long results[] = new Long[result.scoreDocs.length];
    for (int i = 0; i < result.scoreDocs.length; i++) {
        Long value = (Long) ((FieldDoc) result.scoreDocs[i]).fields[0];
        results[i] = value.equals(missingValue) ? null : value;
    }//from  ww  w .  j a v a  2s  .c om
    return results;
}

From source file:io.vertigo.dynamo.plugins.collections.lucene.RamLuceneIndex.java

License:Apache License

private static Optional<Sort> createSort(final DtListState dtListState) {
    if (dtListState.getSortFieldName().isPresent()) {
        final String sortFieldName = dtListState.getSortFieldName().get();
        final boolean sortDesc = dtListState.isSortDesc().get();
        final SortField.Type luceneType = SortField.Type.STRING; //TODO : check if other type are necessary
        final SortField sortField = new SortField(sortFieldName, luceneType, sortDesc);
        sortField.setMissingValue(SortField.STRING_LAST);
        return Optional.of(new Sort(sortField));
    }//from   ww  w  . ja  v  a 2s.c o  m
    return Optional.empty();
}