SpringBoot集成ElasticSearch(ES)实现全文搜索引擎
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.stereotype.Service;
@Service
public class SearchService {
@Autowired
private ElasticsearchTemplate elasticsearchTemplate;
public Page<Item> searchItems(String query, int page, int size) {
PageRequest pageRequest = PageRequest.of(page, size);
NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder()
.withQuery(queryStringQuery(query).field("name"))
.withPageable(pageRequest);
Page<Item> items = elasticsearchTemplate.queryForPage(nativeSearchQueryBuilder.build(), Item.class);
return items;
}
}
这段代码定义了一个SearchService
服务类,它使用ElasticsearchTemplate
来执行搜索查询。searchItems
方法构建了一个NativeSearchQueryBuilder
来创建查询,并设置了要搜索的字段(这里是"name")以及分页信息。然后,它使用elasticsearchTemplate.queryForPage
方法执行查询,并返回一个Item
的Page
对象。这个例子展示了如何在Spring Boot应用程序中集成Elasticsearch实现基本的全文搜索功能。
评论已关闭