I got solution.
I will just post code...
@Indexed // must
@JsonAutoDetect
@Entity
@Table(name="subject")
public class Subject implements java.io.Serializable {
private String description;
@ContainedIn // must
@Field(index = Index.YES, analyze = Analyze.YES, store = Store.YES)
@Column(name = "subjectname", nullable = false, length = 150)
public String getDescription() {
return this.description;
}
}
In catalogue:
@ManyToOne
@NotFound(action= NotFoundAction.IGNORE)
@JoinColumn(name = "subject1", insertable = true, updatable=true, nullable = true)
@JsonProperty
@IndexedEmbedded // must
public Subject getSubject() {
return subject;
}
public void setSubject(Subject subject) {
this.subject = subject;
}
And in the DAO, it must be:
org.apache.lucene.search.Query luceneQuery = queryBuilder.keyword().onFields("subject.description").matching(queryString).createQuery();