List of usage examples for org.apache.lucene.search SortField STRING_FIRST
Object STRING_FIRST
To view the source code for org.apache.lucene.search SortField STRING_FIRST.
Click Source Link
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:/*from www . j a v a 2s . 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;/* w w w.ja v a 2s.c om*/ 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:org.codelibs.elasticsearch.common.lucene.Lucene.java
License:Apache License
private static void writeMissingValue(StreamOutput out, Object missingValue) throws IOException { if (missingValue == SortField.STRING_FIRST) { out.writeByte((byte) 1); } else if (missingValue == SortField.STRING_LAST) { out.writeByte((byte) 2); } else {//from www . j a v a2s . c om out.writeByte((byte) 0); out.writeGenericValue(missingValue); } }
From source file:org.codelibs.elasticsearch.common.lucene.Lucene.java
License:Apache License
private static Object readMissingValue(StreamInput in) throws IOException { final byte id = in.readByte(); switch (id) { case 0:/*from w ww .j av a 2s.c o m*/ return in.readGenericValue(); case 1: return SortField.STRING_FIRST; case 2: return SortField.STRING_LAST; default: throw new IOException("Unknown missing value id: " + id); } }
From source file:org.codelibs.elasticsearch.index.fielddata.fieldcomparator.BytesRefFieldComparatorSource.java
License:Apache License
@Override public Object missingValue(boolean reversed) { if (sortMissingFirst(missingValue) || sortMissingLast(missingValue)) { if (sortMissingLast(missingValue) ^ reversed) { return SortField.STRING_LAST; } else {/*from w w w . j ava 2s . c o m*/ return SortField.STRING_FIRST; } } // otherwise we fill missing values ourselves return null; }
From source file:org.hibernate.search.backend.lucene.types.sort.impl.StringFieldSortContributor.java
License:LGPL
private StringFieldSortContributor() { super(SortField.STRING_FIRST, SortField.STRING_LAST); }
From source file:org.hibernate.search.query.dsl.sort.impl.SortFieldStates.java
License:LGPL
private void processMissingValue(SortField sortField) { if (currentMissingValue != null && sortField.getType() != null) { if (sortField.getType() == SortField.Type.STRING || sortField.getType() == SortField.Type.STRING_VAL) { if (currentMissingValue == MISSING_VALUE_LAST) { sortField.setMissingValue(SortField.STRING_LAST); } else if (currentMissingValue == MISSING_VALUE_FIRST) { sortField.setMissingValue(SortField.STRING_FIRST); } else { throw new SearchException("Unsupported 'use(Object)' for the field type: '" + currentType + "'." + " Only 'sortFirst()' and 'sortLast()' are supported."); }//from w ww . j a v a 2 s . co m } else { boolean reverse = sortField.getReverse(); if (currentMissingValue == MISSING_VALUE_FIRST && !reverse || currentMissingValue == MISSING_VALUE_LAST && reverse) { Object min = SCALAR_MINIMUMS.get(sortField.getType()); if (min != null) { sortField.setMissingValue(min); } else { throw new SearchException("Unsupported 'sortFirst()'/'sortLast()' for the field type: '" + currentType + "'." + " Only 'use(Object)' is supported."); } } else if (currentMissingValue == MISSING_VALUE_LAST && !reverse || currentMissingValue == MISSING_VALUE_FIRST && reverse) { Object max = SCALAR_MAXIMUMS.get(sortField.getType()); if (max != null) { sortField.setMissingValue(max); } else { throw new SearchException("Unsupported 'sortFirst()'/'sortLast()' for the field type: '" + currentType + "'." + " Only 'use(Object)' is supported."); } } else { /* * Field bridge cannot be used for non-string sort values, since the field bridge * only provides a String and the SortField only accepts a value of the * actual sort type (Long, Double, ...). * That's why we don't call useFieldBridgeIfNecessary() here. */ sortField.setMissingValue(currentMissingValue); } } } }
From source file:org.meresco.lucene.QueryConverter.java
License:Open Source License
private Object missingSortValue(String missingValue) { if (missingValue == null) return null; if (missingValue.equals("STRING_FIRST")) return SortField.STRING_FIRST; else if (missingValue.equals("STRING_LAST")) return SortField.STRING_LAST; return null;//from w w w .ja v a2 s .c o m }
From source file:org.meresco.lucene.QueryConverterTest.java
License:Open Source License
@Test public void testSortKeys() { JsonObject json = Json.createObjectBuilder() .add("query", Json.createObjectBuilder().add("type", "MatchAllDocsQuery")) .add("sortKeys", Json.createArrayBuilder() .add(Json.createObjectBuilder().add("sortBy", "fieldname").add("type", "String") .add("sortDescending", false)) .add(Json.createObjectBuilder().add("sortBy", "score").add("sortDescending", true)) .add(Json.createObjectBuilder().add("sortBy", "intfield").add("type", "Int") .add("sortDescending", true)) .add(Json.createObjectBuilder().add("sortBy", "fieldname").add("type", "String") .add("missingValue", "STRING_FIRST").add("sortDescending", true)) .add(Json.createObjectBuilder().add("sortBy", "fieldname").add("type", "String") .add("missingValue", "STRING_LAST").add("sortDescending", true)) .add(Json.createObjectBuilder().add("sortBy", "longfield").add("type", "Long") .add("sortDescending", true)) .add(Json.createObjectBuilder().add("sortBy", "doublefield").add("type", "Double") .add("sortDescending", true))) .build();// ww w. ja v a 2 s. c o m QueryData q = new QueryData(new StringReader(json.toString()), queryConverter); assertEquals(new MatchAllDocsQuery(), q.query); SortField[] sortFields = q.sort.getSort(); assertEquals(7, sortFields.length); assertEquals("fieldname", sortFields[0].getField()); assertEquals(SortField.Type.STRING, sortFields[0].getType()); assertEquals(false, sortFields[0].getReverse()); assertEquals(null, sortFields[0].missingValue); assertEquals(null, sortFields[1].getField()); assertEquals(SortField.Type.SCORE, sortFields[1].getType()); assertEquals(true, sortFields[1].getReverse()); assertEquals(null, sortFields[1].missingValue); assertEquals("intfield", sortFields[2].getField()); assertEquals(SortField.Type.INT, sortFields[2].getType()); assertEquals(true, sortFields[2].getReverse()); assertEquals(null, sortFields[2].missingValue); assertEquals("fieldname", sortFields[3].getField()); assertEquals(SortField.Type.STRING, sortFields[3].getType()); assertEquals(true, sortFields[3].getReverse()); assertEquals(SortField.STRING_FIRST, sortFields[3].missingValue); assertEquals("fieldname", sortFields[4].getField()); assertEquals(SortField.Type.STRING, sortFields[4].getType()); assertEquals(true, sortFields[4].getReverse()); assertEquals(SortField.STRING_LAST, sortFields[4].missingValue); assertEquals("longfield", sortFields[5].getField()); assertEquals(SortField.Type.LONG, sortFields[5].getType()); assertEquals(true, sortFields[5].getReverse()); assertEquals(null, sortFields[5].missingValue); assertEquals("doublefield", sortFields[6].getField()); assertEquals(SortField.Type.DOUBLE, sortFields[6].getType()); assertEquals(true, sortFields[6].getReverse()); assertEquals(null, sortFields[6].missingValue); }