Я поле определяется в моей модели как:Hibernate поиск подстановочные не возвращать ожидаемое значение
@Column(name = "name")
@Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
private String name;
и мой запрос
public Result search(String term, int offset, int limit) {
WildcardQuery regexQuery = new WildcardQuery(new org.apache.lucene.index.Term("name", "*" + term + "*"));
QueryBuilder qb = getFullTextSession().getSearchFactory().buildQueryBuilder().forEntity(Company.class).get();
org.apache.lucene.search.Query query =
qb.bool().should(qb.phrase().onField("address.street").sentence(term).createQuery())
.should(regexQuery)
.createQuery();
FullTextQuery hibQuery = getFullTextSession().createFullTextQuery(query, Company.class);
hibQuery.setFirstResult(offset);
hibQuery.setMaxResults(limit);
Result result = new Result();
result.total = hibQuery.getResultSize();
result.items = hibQuery.list();
return result;
}
Я значение в базе данных (также индексируются) «Интерспринт ГмбХ». Если я позвоню методу:
поиск ("Interspr");
Я ожидаю получить эту сущность, но результат был пуст. Любое предложение, как я могу построить запрос «содержит»?