springboot(cloud)整合es

引入依賴

org.springframework.boot
spring-boot-starter-data-elasticsearch




com.alibaba
fastjson
1.2.59

yml文件
在這裏插入圖片描述
這樣啓動報錯,因爲健康檢查

2020-06-04 13:50:35.041  WARN 14676 --- [nfoReplicator-0] s.b.a.e.ElasticsearchRestHealthIndicator : Elasticsearch health check failed

java.net.ConnectException: Timeout connecting to [localhost/127.0.0.1:9200]
	at org.elasticsearch.client.RestClient$SyncResponseListener.get(RestClient.java:959) ~[elasticsearch-rest-client-6.8.4.jar:6.8.4]
	at org.elasticsearch.client.RestClient.performRequest(RestClient.java:233) ~[elasticsearch-rest-client-6.8.4.jar:6.8.4]
	at org.springframework.boot.actuate.elasticsearch.ElasticsearchRestHealthIndicator.doHealthCheck(ElasticsearchRestHealthIndicator.java:60) ~[spring-boot-actuator-2.2.1.RELEASE.jar:2.2.1.RELEASE]
	at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:82) ~[spring-boot-actuator-2.2.1.RELEASE.jar:2.2.1.RELEASE]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_201]
	at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1628) ~[na:1.8.0_201]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_201]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_201]
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[na:1.8.0_201]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_201]
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[na:1.8.0_201]
	at org.springframework.cloud.netflix.eureka.EurekaHealthCheckHandler.getStatus(EurekaHealthCheckHandler.java:195) ~[spring-cloud-netflix-eureka-client-2.2.0.RC1.jar:2.2.0.RC1]
	at org.springframework.cloud.netflix.eureka.EurekaHealthCheckHandler.getHealthStatus(EurekaHealthCheckHandler.java:176) ~[spring-cloud-netflix-eureka-client-2.2.0.RC1.jar:2.2.0.RC1]
	at org.springframework.cloud.netflix.eureka.EurekaHealthCheckHandler.getStatus(EurekaHealthCheckHandler.java:170) ~[spring-cloud-netflix-eureka-client-2.2.0.RC1.jar:2.2.0.RC1]
	at com.netflix.discovery.DiscoveryClient.refreshInstanceInfo(DiscoveryClient.java:1406) ~[eureka-client-1.9.13.jar:1.9.13]
	at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:117) ~[eureka-client-1.9.13.jar:1.9.13]
	at com.netflix.discovery.InstanceInfoReplicator$1.run(InstanceInfoReplicator.java:101) ~[eureka-client-1.9.13.jar:1.9.13]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_201]
	at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) ~[na:1.8.0_201]
	at java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:1.8.0_201]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_201]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_201]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_201]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_201]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_201]
Caused by: java.net.ConnectException: Timeout connecting to [localhost/127.0.0.1:9200]
	at org.apache.http.nio.pool.RouteSpecificPool.timeout(RouteSpecificPool.java:169) ~[httpcore-nio-4.4.12.jar:4.4.12]
	at org.apache.http.nio.pool.AbstractNIOConnPool.requestTimeout(AbstractNIOConnPool.java:628) ~[httpcore-nio-4.4.12.jar:4.4.12]
	at org.apache.http.nio.pool.AbstractNIOConnPool$InternalSessionRequestCallback.timeout(AbstractNIOConnPool.java:894) ~[httpcore-nio-4.4.12.jar:4.4.12]
	at org.apache.http.impl.nio.reactor.SessionRequestImpl.timeout(SessionRequestImpl.java:184) ~[httpcore-nio-4.4.12.jar:4.4.12]
	at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processTimeouts(DefaultConnectingIOReactor.java:214) ~[httpcore-nio-4.4.12.jar:4.4.12]
	at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:158) ~[httpcore-nio-4.4.12.jar:4.4.12]
	at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:351) ~[httpcore-nio-4.4.12.jar:4.4.12]
	at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:221) ~[httpasyncclient-4.1.4.jar:4.1.4]
	at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64) ~[httpasyncclient-4.1.4.jar:4.1.4]
	... 1 common frames omitted

在這裏插入圖片描述

一.創建一個bean,用於數據增刪改查
在這裏插入圖片描述

二.創建一個類似mapping的類
在這裏插入圖片描述
三.數據的增刪改查
增加:
在這裏插入圖片描述
刪除
在這裏插入圖片描述
修改:
在這裏插入圖片描述
查詢:高亮還有問題在找,找到後補充

   public Page<UserVo> getShow(String name) {
        QueryStringQueryBuilder img = QueryBuilders.queryStringQuery("\""+name+"\"");
//        MatchQueryBuilder img = QueryBuilders.matchQuery("name", name);
        FieldSortBuilder id = SortBuilders.fieldSort("id").order(SortOrder.ASC);
        HighlightBuilder highlightBuilder = new HighlightBuilder().field("name").preTags("<span style=\"color:red\">").postTags("</span>").requireFieldMatch(false);

//        highlightBuilder.requireFieldMatch(true);     //如果要多個字段高亮,這項要爲false

        //下面這兩項,如果你要高亮如文字內容等有很多字的字段,必須配置,不然會導致高亮不全,文章內容缺失等
//        highlightBuilder.fragmentSize(800000); //最大高亮分片數
//        highlightBuilder.numOfFragments(0); //從第一個分片獲取高亮片段
        Pageable pageable = PageRequest.of(0, 10);
//        NativeSearchQuery nativeSearchQueryBuildel = new NativeSearchQueryBuilder().withQuery(img).withSort(id).withHighlightBuilder(highlightBuilder).withPageable(pageable).build();
        NativeSearchQuery nativeSearchQueryBuildel = new NativeSearchQueryBuilder().withQuery(img).withSort(id).withHighlightFields(new HighlightBuilder.Field("name")).withPageable(pageable).build();
        Page<UserVo> search = userVoAddElasticsearch.search(nativeSearchQueryBuildel);
       log.warn( search.toString());
        return search;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章