Hibernate Search & Lucene (TODO)#
TODO:
Base
Explain how we should deal with @IndexedEmbedded/@ContainedIn
Explain how we should deal with sorts
Sorting#
Sorting behavior depends on the data type:
to sort by
id
, you have to use the fieldGenericEntity.ID_SORT
to sort by string, you should define an additional field with the
TEXT_SORT
analyzer:
@Column
@Fields({
@Field(analyzer = @Analyzer(definition = HibernateSearchAnalyzer.TEXT_STEMMING)),
@Field(name = EN_SORT, analyzer = @Analyzer(definition = HibernateSearchAnalyzer.TEXT_SORT))
})
@SortableField(forField = EN_SORT)
private String en;
to sort by date, you don’t need an additional field BUT you need to sort using
SortField.Type.LONG
(starting from 0.11)
Note that, you need to add a @SortableField(forField = "fieldName")
annotation for each field used for sorting.