Lucene: Welche Annotationen sind nötig, damit ein Ecore-Model die Java Klasse für Lucene mit Hibernate indexiert?

Diese drei:

  • org.hibernate.search.annotations.Indexed
  • org.hibernate.search.annotations.DocumentId
  • org.hibernate.search.annotations.Field

Die @Indexed annotation markieren, dass die Entitys indiziert
werden sollen.

Das Attribut ID der Entity muss mit @DocumentId annotiert werden, damit Hibernate
Search ein Mapping zwischen Dokumenten im Index und Entitys in der Datenbank herstellen kann.

Und die @Field annotation. Mit diesem Parameter kann angegeben werden, wie das Feld heißen soll und wie es indiziert werden soll und ob der Inhalt in Tokens zerlegt werden soll oder nicht, und ob der Inhalt auch im Index gespeichert werden soll, welche Filter und Analyzer für das Feld verwendet werden sollen.

Im ecore Modell:
ecore-anno

Ergebnis in der generierten Java Klasse:
ecore-klasse