在Service层,我们可以实现分组聚合查询。为了查询每个目的地的旅行人数,代码示例如下: importorg.elasticsearch.action.search.SearchRequest;importorg.elasticsearch.action.search.SearchResponse;importorg.elasticsearch.client.RequestOptions;importorg.elasticsearch.index.query.QueryBuilders;importorg.elasticsearch.search.aggre...
boolQueryBuilder.should(QueryBuilders.boolQuery().must(QueryBuilders.termQuery(EsConstant.MEDIA_ID,t.getMedia_id())).must(QueryBuilders.termQuery(EsConstant.MSG_ID_S,t.getMsg_id_s())).must(QueryBuilders.termQuery(EsConstant.MSG_TYPE,t.getMsg_type())); }); return new SearchSourceBuilder(...
@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = ElasticSearchApplication.class) public class SearchJunit { @Autowired private RestHighLevelClient client; /** * 聚合查询 分组 * @throws IOException */ @Test public void search33() throws IOException { // 创建请求 SearchSourceBuilder...
NativeSearchQuery nativeSearchQuery =nativeSearchQueryBuilder.build();//3.执行查询//3.1方法1,通过reporitory执行查询,获得有Page包装了的结果集 Page<Item> search =itemRespository.search(nativeSearchQuery); List<Item> content =search.getContent();for(Item esBlog : content) { ueserNameList.add(esBl...
查询# 根据id进行查询# Copy @OverridepublicMap<String,Object>getEs(String id)throwsIOException {GetRequestgetRequest=newGetRequest(NBA_INDEX,id);GetResponseresponse=client.get(getRequest,RequestOptions.DEFAULT);returnresponse.getSource();} ... 后面会继续扩展 ...
spring-boot-starter-data-elasticsearch:是springboot整合es的一个快速开发包。用过JPA的朋友应该知道,springdata是通过解析方法名来实现查询数据库的。同样的这个快速开发包也是大大简化了Java使用es的流程。 ik分词器 IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。也可以引入其他的中文分词器,本文...
SpringBoot系列之ES查询常用实例演示 本文将作为es系列第三篇,结合常见的实例,来演示下如何通过RestHighLevelClient来实现es的各种查询支持 I. 项目搭建 1. 项目依赖 本项目借助SpringBoot 2.2.1.RELEASE+maven 3.5.3+IDEA进行开发 开一个web服务用于测试 ...
1.3 ES基本使用 在ES中我们要先创建索引,这个索引的功能又点类似于数据库的表,然后将数据添加到倒排索引中,添加的数据称为文档。所以要进行ES的操作要先创建索引,再添加文档,这样才能进行后续的查询操作。 要操作ES可以通过Rest风格的请求来进行,也就是说发送一个请求就可以执行一个操作。比如新建索引,删除索引这些...
主要原因就是spring-data支持的es版本太低,虽然近期spring-data-es已经更新可以支持比较新的版本的es,但是同时对于springboot的版本要求也比较高。我项目中所使用spring-boot版本较低,而对应支持的es版本更低,所以我直接集成es的原生客户端。具体原因可以参看:https://blog.csdn.net/lsqingfeng/article/details/...