Elastic Search使用Spring Boot集成ES使用JAVA代码进行操作------Elastic Search
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
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;
import java.util.List;
@Service
public class ElasticSearchService {
@Autowired
private ElasticsearchTemplate elasticsearchTemplate;
public List<Item> searchItemsByKeywords(String keywords, int page, int size) {
// 构建查询条件
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder()
.withQuery(QueryBuilders.multiMatchQuery(keywords, "title", "subtitle"))
.withSort(SortBuilders.fieldSort("sales").order(SortOrder.DESC)) // 按销售量降序排序
.withPageable(PageRequest.of(page, size)); // 分页
// 执行查询
Page<Item> pageResult = elasticsearchTemplate.queryForPage(queryBuilder.build(), Item.class);
// 返回查询结果
return pageResult.getContent();
}
}
这段代码展示了如何在Spring Boot项目中使用ElasticsearchTemplate来执行基本的搜索操作。它构建了一个多字段匹配查询,并根据销售量字段进行降序排序,最后执行查询并返回分页结果。这是一个简单的搜索服务示例,可以根据实际需求进行扩展和修改。
评论已关闭