/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.annotations; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Makes a property sortable. * <p> * A field for that property must be declared via the {@link Field} annotation from which the field bridge configuration * will be inherited. In the rare case that a property should be sortable but not searchable, declare a field which is * not indexed nor stored. Then only the sort field will be added to the document, but no standard index field. * <p> * Sorting on a field without a declared sort field will still work, but it will be slower and cause a higher memory * consumption. Therefore it's strongly recommended to declare each required sort field. * * @author Gunnar Morling */ @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.METHOD, ElementType.FIELD }) @Documented @Repeatable(SortableFields.class) public @interface SortableField { /** * @return the name of the field whose field bridge to apply to obtain the value of this sort field. Can be omitted in case only * a single field exists for the annotated property. */ String forField() default ""; }