Hibernate Search. Как позволить поисковику искать по стоп-словам?
Как в Hibernate Search позволить искать по стоп-словам? Пока пытаюсь использовать lucene.
Пример некоторых моментов кода:
SearchRepository.java
@Repository
@Transactional
public class SearchRepository {
@PersistenceContext
private EntityManager entityManager;
public List<Post> searchPost(String text) {
FullTextEntityManager fullTextEntityManager = getFullTextEntityManager(entityManager);
// создаем запрос при помощи Hibernate Search query DSL
QueryBuilder queryBuilder = fullTextEntityManager.getSearchFactory()
.buildQueryBuilder().forEntity(Post.class).get();
//обозначаем поля, по которым необходимо произвести поиск
Query query = queryBuilder
.keyword()
.onFields("title", "bodySearch")
.ignoreAnalyzer()
.matching(text)
.createQuery();
//оборачиваем Lucene Query в Hibernate Query object
FullTextQuery jpaQuery = fullTextEntityManager.createFullTextQuery(query, Post.class);
@SuppressWarnings("unchecked")
List<Post> resultList = jpaQuery.getResultList();
return resultList;
}
}
Post.java
@Entity
@Data
@Table
@NoArgsConstructor
@AllArgsConstructor
@Indexed
public class Post {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "post_generator")
@SequenceGenerator(name="post_generator", sequenceName = "seq_post", allocationSize = 1)
private Long id;
@Column
@Field
private String title;
@Lob
@Field
private String bodySearch;
}