Hibernate Search使用以及搜索结果高亮显视
1、首先说一下需求
有两个实体:问题实体(Question)和选项实体(QuestionOption),两个实体间是一对多关系,需求如下:根据问题(questionContent字段)或选项(questionOptionContent字段)进行搜索,并将搜索结果高亮显示。
2、所需jar包(gradle项目)
'org.hibernate:hibernate-core:5.0.9.Final',
'org.hibernate:hibernate-java8:5.0.9.Final',
'org.hibernate:hibernate-ehcache:5.0.9.Final',
'org.hibernate:hibernate-entitymanager:5.0.9.Final',
'org.hibernate:hibernate-search-engine:5.5.4.Final',
'org.hibernate:hibernate-search-orm:5.5.4.Final',
'org.apache.lucene:lucene-core:5.3.1',
'org.apache.lucene:lucene-analyzers-smartcn:5.3.1',
'org.apache.lucene:lucene-highlighter:5.3.1'
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer;
import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.A