Springboot整合es

简介: Springboot整合es

1、引入依赖

//注意版本一致

<dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-data-elasticsearch</artifactId>

</dependency>

 

2、配置类

@Configuration
public class ESConfiguration {
    @Bean
    public RestHighLevelClient elasticsearchClient() {
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("admin", "admin"));
 
        
        return new RestHighLevelClient(RestClient.builder(
                //使用公网地址 new HttpHost("www.xxx.com", 9200,"https")
                new HttpHost("localhost", 9200)
        ).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
            public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                httpClientBuilder.disableAuthCaching();
                return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
            }
        }));
    }
}

3、使用

//搜索条件
SearchRequest searchRequest = new SearchRequest(indexName);
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
 
//分页
sourceBuilder.from(pageNo);
sourceBuilder.size(pageSize);//聚合时都默认返回10条数据,我们可以通过指定size值来修改这个默认值
 
//查询条件构造 调用sourceBuilder相关api设置即
 
//指定字段查询
sourceBuilder.fetchSource(include,exclude);//可以是数组
 
//超时设置
sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
 
//查询
searchRequest.source(sourceBuilder);
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
 
//结果
SearchHit[] searchHits =   searchResponse.getHits().getHits();
List<Map<String, Object>> maps = new ArrayList<>();
for (SearchHit hit : searchHits) {
    Map<String, Object> sourceAsMap = hit.getSourceAsMap();
    maps.add(sourceAsMap);
}

备注

size的大小不能超过index.max_result_window这个参数的设置,默认为10,000可以通过下面语句设置

PUT /indexName/_settings

{

   "index": {

       "max_result_window": "10000000"

   }

}


设置完查看

GET /indexName/_settings


相关文章
|
存储 搜索推荐 Java
|
SQL 自然语言处理 Java
Springboot项目中使用Elasticsearch的RestClient
上一篇介绍了Elasticsearch的入门《5000字详说Elasticsearch入门(一)》,本篇介绍Springboot如何集成使用Elasticsearch。分为3步:配置properties文件、引入pom依赖、配置RestHighLevelClient类。
28964 1
|
Java
【极问系列】springBoot集成elasticsearch出现Unable to parse response body for Response
【极问系列】springBoot集成elasticsearch出现Unable to parse response body for Response
1766 2
|
存储 Java 数据库
SpringBoot整合Spring Data Elasticsearch
Spring Data Elasticsearch提供了ElasticsearchTemplate工具类,实现了POJO与elasticsearch文档之间的映射
872 0
|
Java Docker 容器
springboot整合后台框架(三)整合elasticsearch
springboot整合后台框架(三)整合elasticsearch
848 0
|
消息中间件 Java 关系型数据库
【二十】springboot整合ElasticSearch实战(万字篇)
【二十】springboot整合ElasticSearch实战(万字篇)
4065 47
springboot和elasticsearch以及springboot data elasticsearch对应的版本
springboot和elasticsearch以及springboot data elasticsearch对应的版本
1383 1
|
搜索推荐 Java 数据库
springboot集成ElasticSearch的具体操作(系统全文检索)
springboot集成ElasticSearch的具体操作(系统全文检索)
|
存储 搜索推荐 Java
Spring Boot与Elasticsearch的集成应用
Spring Boot与Elasticsearch的集成应用
|
存储 JSON 搜索推荐
Springboot2.x整合ElasticSearch7.x实战(三)
Springboot2.x整合ElasticSearch7.x实战(三)
366 0