, ElasticsearchTemplate , ( , ).
, , - . TestRepositoryCustom:
public interface TestRepositoryCustom
{
Test> findByCustom(...);
}
, "Impl" :
public class TestRepositoryImpl implements TestRepositoryCustom
{
Page<Test> findByCustom(Pageable pageable, ...)
{
BoolQueryBuilder boolQuery = new BoolQueryBuilder();
FilterBuilder filter = FilterBuilders.staticMethodsToBuildFilters;
NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder().withQuery(boolQuery).withFilter(filter).withPageable(pageable);
builder.withIndices("test-alias");
builder.withTypes("test");
SearchQuery searchQuery = builder.build();
return elasticSearchTemplate.queryForPage(searchQuery, Test.class);
}
}
, JPA TestRepository TestRepositoryCustom, bean.
public interface TestRepository extends ElasticsearchRepository<Consultant, String>, TestRepositoryCustom
{
}
, , - :
@Document(aliasName="test-alias")
, , jpa .