原标题:Spring认证中国教育管理中心-Spring Data Elasticsearch教程四(Spring中国教育管理中心)
8.4.存储库方法的注释
8.4.1.@强调
存储库方法上的@Highlight注释定义了应包含返回的实体突出显示的哪些字段。要在 a 的名称或摘要中搜索某些文本Book并突出显示找到的数据,可以使用以下存储库方法:
interface BookRepository extends Repository<Book, String> {
@Highlight(fields = {
@HighlightField(name = "name"),
@HighlightField(name = "summary")
})
List<SearchHit<Book>> findByNameOrSummary(String text, String summary);
}
可以像上面一样定义多个要突出显示的字段,并且可以使用注释进一步自定义the@Highlight和annotation。检查 Javadocs 以获得可能的配置选项。@HighlightField@HighlightParameters
在搜索结果中,可以从SearchHit类中检索高亮数据。
8.5。基于注释的配置
Spring Data Elasticsearch 存储库支持可以通过 JavaConfig 使用注释激活。
示例 80. 使用 JavaConfig 的 Spring Data Elasticsearch 存储库
@Configuration
@EnableElasticsearchRepositories(
basePackages = "org.springframework.data.elasticsearch.repositories"
)
static class Config {
@Bean
public ElasticsearchOperations elasticsearchTemplate() {
// ...
}
}
class ProductService {
private ProductRepository repository;
public ProductService(ProductRepository repository) {
this.repository = repository;
}
public Page<Product> findAvailableBookByName(String name, Pageable pageable) {
return repository.findByAvailableTrueAndNameStartingWith(name, pageable);
}
}
EnableElasticsearchRepositories注释激活存储库支持。如果没有配置基本包,它将使用它所放置的配置类之一。
使用Elasticsearch Operations一章中显示的配置之一提供一个名为elasticsearchTemplatetype的 Bean。ElasticsearchOperations
让 Spring 将 Repository bean 注入到您的类中。
8.6.使用 CDI 的 Elasticsearch 存储库
Spring Data Elasticsearch 存储库也可以使用 CDI 功能进行设置。