当前位置: 首页 > news >正文

做网站免费广州室内设计培训学校

做网站免费,广州室内设计培训学校,室内设计装修用啥软件,购物网站app开发一、简介 1.Shard#xff08;分片#xff09; 数据分散集群的架构模式#xff0c;Elasticsearch 将一个 Index#xff08;索引#xff09;中的数据切为多个 Shard#xff08;分片#xff09;#xff0c;分布在不同服务器节点上。 默认每个索引会分配5个主分片和1个副本…一、简介  1.Shard分片 数据分散集群的架构模式Elasticsearch 将一个 Index索引中的数据切为多个 Shard分片分布在不同服务器节点上。 默认每个索引会分配5个主分片和1个副本分片可根据需要调整主分片和副本分片的数量。 2.Replica副本 主从架构模式每个Shard分片创建多个备份——Replica副本保证数据不丢失。 1.主分片和副本分片数量的调整 PUT /my-index/_settings {   number_of_shards: 3,   number_of_replicas: 2 } 2.新建索引时设置分片 PUT /my-index {   settings: {     number_of_shards: 3,     number_of_replicas: 2   } } 1.1、数据类型  1.1.1、常见数据类型  字符串型text(分词)、keyword(不分词) 数值型long、integer、short、byte、double、float、half_float、scaled_float 日期类型date 布尔类型boolean 二进制类型binary 范围类型integer_range、float_range、long_range、double_range、date_range 1.1.2、复杂数据类型  数组类型array 对象类型object 嵌套类型nested object 1.1.3、特殊数据类型  地理位置数据类型geo_point(点)、geo_shape(形状)  记录IP地址ip  实现自动补全completion  记录分词数token_count  记录字符串hash值murmur3  多字段特性multi-fields  1.2、工作流程  1.2.1、路由  ES采用 hash 路由算法对 document 的 id 标识进行计算产生 shard 序号通过序号可立即确定shard。 1.2.2、写入流程  1.A节点接到请求计算路由转发对应节点。 2.对应节点处理完数据后数据同步到副本节点。 3.A节点收到对应节点的响应将结果返回给调用者。 1.2.3、读取流程  1.协调节点接到请求计算路由用round-robin算法在对应的primary shard及其所有replica中随机选择一个发送请求。 3.协调节点收到对应节点的响应将结果返回给调用者。 二、工作原理流程  2.1、到排序索引  到排序索引 2.2、分词器  ES内置分词器standard analyzer、simple analyzer、whitespace analyzer、language analyzer  对于document中的不同字段类型ES采用不同的分词器进行处理如date类型不会分词要完全匹配text类型会分词。 2.2.1、常用的中文分词器IK分词器  7.6.0版本的IKhttps://github.com/medcl/elasticsearch-analysis-ik/releases 解压缩放到YOUR_ES_ROOT/plugins/ik/目录下重启Elasticsearch即可。  1、IK分词器的两种分词模式一般用 ik_max_word  ik_max_word会将文本做最细粒度的拆分比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”等等会穷尽各种可能的组合。 ik_smart只做最粗粒度的拆分比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。 PUT /my_index {mappings: {properties: {text: {type: text,analyzer: ik_max_word}}} } 2、配置文件  IK的配置文件存在于YOUR_ES_ROOT/plugins/ik/config目录下 main.dic IK原生内置的中文词库总共有27万多条只要是这些单词都会被分在一起 quantifier.dic 放了一些单位相关的词 suffix.dic 放了一些后缀 surname.dic 中国的姓氏 stopword.dic 英文停用词。  2.3、数据同步机制  one、all、quorum默认可在请求时带上consistency参数表明采用哪种模式。 one 模式  有一个primary shard是active活跃可用操作算成功。 all 模式  必须所有的primary shard和replica shard都是活跃的操作算成功。 quorum 模式  确保大多数shard可用不满足条件时会默认等1分钟超间就报timeout错可在写时加timeout PUT /index/type/id?timeout30 2.4、数据持久化策略  1.数据先写入 in-memory buffer应用内存中同时写入 translog 日志文件日志内存每5秒刷到磁盘。 2.每隔1秒ES会执行一次 refresh 操作将buffer中的数据refresh到filesystem cache的os cache系统内存中的segment file中可被检索到。 3 每隔30分钟将内存数据flush到磁盘或者translog大到一定程度时会触发 flush 操作。 可设置index的index.translog.durability参数使每次写入一条数据都写入buffer同时fsync写入磁盘上的translog文件。 三、使用  2.1、语法规则  2.2、ES的 DSL 语法 1、创建索引HTTP请求 shopping索引名称 # 1.创建索引等于创建数据库PUT请求 http://127.0.0.1:9200/shopping# 2.获取索引GET请求 http://127.0.0.1:9200/shopping# 3.删除索引DELETE请求 http://127.0.0.1:9200/shopping 2、文档数据的创建 # 1.往索引里新增数据不自定义IDPOST传JSON http://127.0.0.1:9200/shopping/_doc/# 2.往索引里新增数据自定义IDPOST、PUT传JSON http://127.0.0.1:9200/shopping/_doc/123 http://127.0.0.1:9200/shopping/_create/123 3.修改 # 1.全量修改PUT、POST http://127.0.0.1:9200/shopping/_doc/123 {name:haige,age,123 } # 2.局部修改POST http://127.0.0.1:9200/shopping/_update/123 {doc :{name:haige,} } 4、主键查询 全查询 # 查询主键单数据GET http://127.0.0.1:9200/shopping/_doc/123 # 查询全部数据GET http://127.0.0.1:9200/shopping/_search 5.多条件查询范围查询 http://127.0.0.1:9200/shopping/_search {query:{bool :{should :[{match :{name:测试}}],filter :{range:{age:{gt : 20}}}}} } 6.分页查询、排序且只显示name字段 http://127.0.0.1:9200/shopping/_search {query:{match:{name:哈喽}},from:0,size:2,_source : [name],sort : {age : {order : desc}} } 2.3、org.elasticsearch.client 客户端  2.3.1、引入依赖  dependencygroupIdorg.elasticsearch.client/groupIdartifactIdelasticsearch-rest-high-level-client/artifactIdversion7.5.0/versionexclusionsexclusiongroupIdorg.elasticsearch/groupIdartifactIdelasticsearch/artifactId/exclusionexclusiongroupIdorg.elasticsearch.client/groupIdartifactIdelasticsearch-rest-client/artifactId/exclusion/exclusions /dependencydependencygroupIdorg.elasticsearch.client/groupIdartifactIdelasticsearch-rest-client/artifactIdversion7.5.0/version /dependency dependencygroupIdorg.elasticsearch/groupIdartifactIdelasticsearch/artifactIdversion7.5.0/version /dependency 2.3.2、SearchRequest 、SearchSourceBuilder 、QueryBuilder 、SearchResponse 、SearchHit组件常用设置 public static void testRequest()throws Exception{// 创建请求对象,设置查询多个文档库,也可指定单个文档库。SearchRequest request new SearchRequest(index01,index02,index03);// 也可通过 indices 方法指定文档库中request.indices(posts01,posts02, posts03);// 设置指定查询的路由分片request.routing(routing);// 指定优先去某个分片上去查询默认的是随机先去某个分片request.preference(_local);// 设置缓存request.requestCache();// 取出查询语句request.toString(); }public static void testSource()throws Exception{//创建源SearchSourceBuilder source new SearchSourceBuilder();// 第几页source.from(0);// 每页多少条数据(默认是10条)source.size(100);// 设置排序规则source.sort(new ScoreSortBuilder().order(SortOrder.DESC));source.sort(new FieldSortBuilder(id).order(SortOrder.ASC));//获取的字段列和不需要获取的列String[] includeFields new String[]{birthday,name};String[] excludeFields new String[]{age,address};source.fetchSource(includeFields,excludeFields);// 设置超时时间source.timeout(new TimeValue(60, TimeUnit.SECONDS));source.highlighter();// 高亮source.aggregation(AggregationBuilders.terms(by_company));// 聚合//分词查询source.profile(true);source.query(); }public static void testBuilder()throws Exception{//全匹配(查出全部)MatchAllQueryBuilder matchAllQuery QueryBuilders.matchAllQuery();//匹配查询MatchQueryBuilder matchQuery QueryBuilders.matchQuery(,).analyzer();//匹配文本查询MatchPhraseQueryBuilder matchPhraseQuery QueryBuilders.matchPhraseQuery(,);//匹配文本前缀查询MatchPhrasePrefixQueryBuilder matchPhrasePrefixQuery QueryBuilders.matchPhrasePrefixQuery(,);//判断莫子是否有值StringExistsQueryBuilder existsQuery QueryBuilders.existsQuery();//前缀查询PrefixQueryBuilder prefixQuery QueryBuilders.prefixQuery(,);//精确查询TermQueryBuilder termQuery QueryBuilders.termQuery(,);//范围查询RangeQueryBuilder rangeQuery QueryBuilders.rangeQuery(birthday).from(2016-01-01 00:00:00);QueryStringQueryBuilder queryBuilder009 QueryBuilders.queryStringQuery();QueryBuilders.disMaxQuery();HighlightBuilder highlightBuilder new HighlightBuilder();HighlightBuilder.Field highlightTitle new HighlightBuilder.Field(title);highlightTitle.highlighterType(unified);highlightBuilder.field(highlightTitle);HighlightBuilder.Field highlightUser new HighlightBuilder.Field(user);highlightBuilder.field(highlightUser);// 组合器BoolQueryBuilder builder QueryBuilders.boolQuery();//过滤builder.filter();//且builder.must();//非builder.mustNot();//或builder.should(); }public static void testResponse()throws Exception {RestHighLevelClient client new RestHighLevelClient(RestClient.builder(new HttpHost(127.0.0.1, 9200, http)));SearchRequest searchRequest new SearchRequest(user);// 同步SearchResponse response client.search(searchRequest, RequestOptions.DEFAULT);RestStatus status response.status();TimeValue took response.getTook();Boolean terminatedEarly response.isTerminatedEarly();boolean timedOut response.isTimedOut();int totalShards response.getTotalShards();int successfulShards response.getSuccessfulShards();int failedShards response.getFailedShards();for (ShardSearchFailure failure : response.getShardFailures()) {// failures should be handled here}// 异步ActionListenerSearchResponse listener new ActionListenerSearchResponse() {Overridepublic void onResponse(SearchResponse searchResponse) {}Overridepublic void onFailure(Exception e) {}};client.searchAsync(searchRequest, RequestOptions.DEFAULT, listener); }public static void testHits()throws Exception {RestHighLevelClient client new RestHighLevelClient(RestClient.builder(new HttpHost(127.0.0.1, 9200, http)));SearchRequest searchRequest new SearchRequest(user);// 同步SearchResponse response client.search(searchRequest, RequestOptions.DEFAULT);SearchHits hits response.getHits();TotalHits totalHits hits.getTotalHits();//总数long numHits totalHits.value;//TotalHits.Relation relation totalHits.relation;float maxScore hits.getMaxScore();SearchHit[] searchHits hits.getHits();for (SearchHit hit : searchHits) {String index hit.getIndex();String id hit.getId();float score hit.getScore();String sourceAsString hit.getSourceAsString();MapString, Object sourceAsMap hit.getSourceAsMap();String documentTitle (String) sourceAsMap.get(title);ListObject users (ListObject) sourceAsMap.get(user);MapString, Object innerObject (MapString, Object) sourceAsMap.get(innerObject);}// 高亮获取for (SearchHit hit : response.getHits()) {MapString, HighlightField highlightFields hit.getHighlightFields();HighlightField highlight highlightFields.get(title);Text[] fragments highlight.fragments();String fragmentString fragments[0].string();}// 获取聚合结果Aggregations aggregations response.getAggregations();Terms byCompanyAggregation aggregations.get(by_company);Terms.Bucket elasticBucket byCompanyAggregation.getBucketByKey(Elastic);Avg averageAge elasticBucket.getAggregations().get(average_age);double avg averageAge.getValue();// 获取大量聚合结果MapString, Aggregation aggregationMap aggregations.getAsMap();Terms companyAggregation (Terms) aggregationMap.get(by_company);ListAggregation aggregationList aggregations.asList();for (Aggregation agg : aggregations) {String type agg.getType();if (type.equals(TermsAggregationBuilder.NAME)) {Terms.Bucket elasticBucket2 ((Terms) agg).getBucketByKey(Elastic);long numberOfDocs elasticBucket2.getDocCount();}} } 2.3.3、 增删改 //单条增 public static void addDocment()throws Exception{RestHighLevelClient client new RestHighLevelClient(RestClient.builder(new HttpHost(127.0.0.1, 9200, http)));//Map提供供文档源MapString, Object jsonMap new HashMap();jsonMap.put(name, 小红);jsonMap.put(sex, 女);jsonMap.put(age, 22);jsonMap.put(birthDay, new Date());jsonMap.put(message, 测试);IndexRequest indexRequest1 new IndexRequest(user2, doc, 5).source(jsonMap);// 同步执行IndexResponse indexResponse1 client.index(indexRequest1,RequestOptions.DEFAULT);client.close();//XContentBuilder提供供文档源XContentBuilder builder XContentFactory.jsonBuilder();builder.startObject();{builder.field(name, South);builder.timeField(birthDay, new Date());builder.field(message, 第二个小demo);}builder.endObject();IndexRequest indexRequest2 new IndexRequest(user, doc, 2).source(builder);// 同步执行IndexResponse indexResponse2 client.index(indexRequest2,RequestOptions.DEFAULT);String index indexResponse1.getIndex();String type indexResponse1.getType();String id indexResponse1.getId();long version indexResponse1.getVersion();RestStatus restStatus indexResponse1.status();DocWriteResponse.Result result indexResponse1.getResult();ReplicationResponse.ShardInfo shardInfo indexResponse1.getShardInfo();client.close(); }//删 public void deleteTest()throws Exception{RestHighLevelClient client new RestHighLevelClient(RestClient.builder(new HttpHost(127.0.0.1, 9200, http)));DeleteRequest request new DeleteRequest(posts,1);DeleteResponse deleteResponse client.delete(request, RequestOptions.DEFAULT); }//单个改 public static void updateDocment()throws Exception{RestHighLevelClient client new RestHighLevelClient(RestClient.builder(new HttpHost(127.0.0.1, 9200, http)));MapString, Object jsonMap new HashMap();jsonMap.put(name, JunSouth);UpdateRequest updateRequest new UpdateRequest(user,doc,6).doc(jsonMap);UpdateResponse updateResponse client.update(updateRequest,RequestOptions.DEFAULT);String index updateResponse.getIndex();String type updateResponse.getType();String id updateResponse.getId();long version updateResponse.getVersion();System.out.println(index:index type:type id:id version:version);if(updateResponse.getResult() DocWriteResponse.Result.CREATED) {System.out.println(文档已创建);}else if(updateResponse.getResult() DocWriteResponse.Result.UPDATED) {System.out.println(文档已更新);}else if(updateResponse.getResult() DocWriteResponse.Result.DELETED) {System.out.println(文档已删除);}else if(updateResponse.getResult() DocWriteResponse.Result.NOOP) {System.out.println(文档不受更新的影响);}client.close(); }//批量操作 public static void bulkDocment()throws Exception{RestHighLevelClient client new RestHighLevelClient(RestClient.builder(new HttpHost(127.0.0.1, 9200, http)));BulkRequest bulkRequest new BulkRequest();bulkRequest.add(new IndexRequest(user,doc,5).source(XContentType.JSON,name, test)); // 将第一个 IndexRequest 添加到批量请求中bulkRequest.add(new IndexRequest(user,doc,6).source(XContentType.JSON,name,test)); // 第二个BulkResponse bulkResponse client.bulk(bulkRequest,RequestOptions.DEFAULT);boolean falgs bulkResponse.hasFailures(); // true 表示至少有一个操作失败System.out.println(falgs: falgs);for (BulkItemResponse bulkItemResponse : bulkResponse) { // 遍历所有的操作结果DocWriteResponse itemResponse bulkItemResponse.getResponse(); // 获取操作结果的响应可以是 IndexResponse,UpdateResponse or DeleteResponse,它们都可以惭怍是 DocWriteResponse 实例。if (bulkItemResponse.getOpType() DocWriteRequest.OpType.INDEX || bulkItemResponse.getOpType() DocWriteRequest.OpType.CREATE) {IndexResponse indexResponse (IndexResponse) itemResponse;System.out.println(index 操作后的响应结果);}else if(bulkItemResponse.getOpType() DocWriteRequest.OpType.UPDATE) {UpdateResponse updateResponse (UpdateResponse) itemResponse;System.out.println(update 操作后的响应结果);}else if(bulkItemResponse.getOpType() DocWriteRequest.OpType.DELETE) {DeleteResponse deleteResponse (DeleteResponse) itemResponse;System.out.println(delete 操作后的响应结果);}}for (BulkItemResponse bulkItemResponse : bulkResponse) {if (bulkItemResponse.isFailed()) { // 检测给定的操作是否失败BulkItemResponse.Failure failure bulkItemResponse.getFailure();System.out.println(获取失败信息: failure);}}client.close(); } 2.3.4、查 //查询某索引下全部数据 public static void searchAll()throws Exception{RestHighLevelClient client new RestHighLevelClient(RestClient.builder(new HttpHost(127.0.0.1, 9200, http)));SearchRequest searchRequest new SearchRequest(user); // 设置搜索的 index 。QueryBuilder queryBuilder QueryBuilders.matchAllQuery();SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder();searchSourceBuilder.query(queryBuilder); //设置搜索,可以是任何类型的 QueryBuilder.searchRequest.source(searchSourceBuilder);SearchResponse searchResponse client.search(searchRequest,RequestOptions.DEFAULT);SearchHits hits searchResponse.getHits();float maxScore hits.getMaxScore();for (SearchHit hit : hits.getHits()) {System.out.println(hit: hit);String sourceAsString hit.getSourceAsString();MapString, Object sourceAsMap hit.getSourceAsMap();String name (String) sourceAsMap.get(name);System.out.println(name: name);}client.close();//匹配查询器QueryBuilder matchQueryBuilder QueryBuilders.matchQuery(user, kimchy).fuzziness(Fuzziness.AUTO).prefixLength(3).maxExpansions(10);searchSourceBuilder.query(matchQueryBuilder);//高亮HighlightBuilder highlightBuilder new HighlightBuilder();HighlightBuilder.Field highlightTitle new HighlightBuilder.Field(name); // title 字段高亮highlightTitle.highlighterType(unified); // 配置高亮类型highlightBuilder.field(highlightTitle); // 添加到 builderHighlightBuilder.Field highlightUser new HighlightBuilder.Field(user);highlightBuilder.field(highlightUser);searchSourceBuilder.highlighter(highlightBuilder); }//普通条件查询 public static void search01()throws Exception{RestHighLevelClient client new RestHighLevelClient(RestClient.builder(new HttpHost(127.0.0.1, 9200, http)));SearchRequest searchRequest new SearchRequest(user); // 设置搜索的 index 。// 查询器QueryBuilder queryBuilder01 QueryBuilders.termQuery(name, test); //完全匹配QueryBuilder queryBuilder02 QueryBuilders.fuzzyQuery(name, t); //模糊查询QueryBuilder queryBuilder03 QueryBuilders.prefixQuery(name, 小); //前缀查询QueryBuilder queryBuilder04 QueryBuilders.matchQuery(name, 小); //匹配查询WildcardQueryBuilder queryBuilder QueryBuilders.wildcardQuery(name,*jack*);//搜索名字中含有jack文档name中只要包含jack即可// 搜索器(排序、分页...)。SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder();searchSourceBuilder.query(queryBuilder04); // 设置搜索条件searchSourceBuilder.from(0); // 起始 indexsearchSourceBuilder.size(5); // 大小 size// searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); // 设置搜索的超时时间// searchSourceBuilder.sort(new ScoreSortBuilder().order(SortOrder.DESC)); // 根据分数 _score 降序排列 (默认行为)// searchSourceBuilder.sort(new FieldSortBuilder(_uid).order(SortOrder.ASC)); // 根据 id 降序排列searchRequest.source(searchSourceBuilder); // 将 SearchSourceBuilder 添加到 SeachRequest 中。SearchResponse searchResponse client.search(searchRequest,RequestOptions.DEFAULT);SearchHits hits searchResponse.getHits();float maxScore hits.getMaxScore();for (SearchHit hit : hits.getHits()) {String sourceAsString hit.getSourceAsString();MapString, Object sourceAsMap hit.getSourceAsMap();String name (String) sourceAsMap.get(name);System.out.println(hit: hit);System.out.println(name: name);}client.close(); }// 聚合查询 public static void search02()throws Exception{RestHighLevelClient client new RestHighLevelClient(RestClient.builder(new HttpHost(127.0.0.1, 9200, http)));SearchRequest searchRequest new SearchRequest(user2);SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder();// 根据 sex 字段分组TermsAggregationBuilder aggregation AggregationBuilders.terms(my_sex).field(sex.keyword);aggregation.subAggregation(AggregationBuilders.avg(avg_age).field(age)); // age(统计的字段)需是数值型aggregation.subAggregation(AggregationBuilders.max(max_age).field(age));aggregation.subAggregation(AggregationBuilders.min(min_age).field(age));searchSourceBuilder.aggregation(aggregation);searchRequest.source(searchSourceBuilder);SearchResponse searchResponse client.search(searchRequest, RequestOptions.DEFAULT);Aggregations aggregations searchResponse.getAggregations();Terms sexTerms aggregations.get(my_sex);//获取每组的信息for (Terms.Bucket bucket : sexTerms.getBuckets()) {System.out.println(分组的字段名: bucket.getKeyAsString());System.out.println(每组数量: bucket.getDocCount());}//求平均Terms.Bucket elasticBucket1 sexTerms.getBucketByKey(女);Avg averageAge1 elasticBucket1.getAggregations().get(avg_age);double avg1 averageAge1.getValue();System.out.println(女性平均年龄avg1);Terms.Bucket elasticBucket2 sexTerms.getBucketByKey(男);Avg averageAge2 elasticBucket2.getAggregations().get(avg_age);double avg2 averageAge2.getValue();System.out.println(男性平均年龄avg2);//求最大最小Terms.Bucket elasticBucket3 sexTerms.getBucketByKey(女);Max maxAge3 elasticBucket3.getAggregations().get(max_age);double maxAge maxAge3.getValue();System.out.println(女性最大年龄maxAge);Terms.Bucket elasticBucket4 sexTerms.getBucketByKey(女);Min maxAge4 elasticBucket4.getAggregations().get(min_age);double minAge maxAge4.getValue();System.out.println(女性最大年龄minAge);client.close(); }// 多查询 public static void multiSearch()throws Exception{MultiSearchRequest multiSearchRequest new MultiSearchRequest(); // 查两个张索引SearchRequest firstSearchRequest new SearchRequest(user); SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder();searchSourceBuilder.query(QueryBuilders.matchQuery(name, 大黑));firstSearchRequest.source(searchSourceBuilder);multiSearchRequest.add(firstSearchRequest);SearchRequest secondSearchRequest new SearchRequest(car); searchSourceBuilder new SearchSourceBuilder();searchSourceBuilder.query(QueryBuilders.matchQuery(weight, 3T));secondSearchRequest.source(searchSourceBuilder);multiSearchRequest.add(secondSearchRequest);// 取值1MultiSearchResponse multiSearchResponse client.msearch(multiSearchRequest,RequestOptions.DEFAULT);MultiSearchResponse.Item firstResponse multiSearchResponse.getResponses()[0]; SearchResponse firstSearchResponse firstResponse.getResponse(); for (SearchHit hit : firstSearchResponse.getHits()) {MapString, Object sourceAsMap hit.getSourceAsMap();String name (String) sourceAsMap.get(name);}MultiSearchResponse.Item secondResponse response.getResponses()[1]; SearchResponse secondSearchResponse secondResponse.getResponse();for (SearchHit hit : secondSearchResponse.getHits()) {MapString, Object sourceAsMap hit.getSourceAsMap();String name (String) sourceAsMap.get(weight);}// 取值2for (MultiSearchResponse.Item item : multiSearchResponse.getResponses()) {SearchResponse response item.getResponse();for (SearchHit hit : response.getHits()) {String indexhit.getIndex();//根据不同索引名作不同的处理。if(index.equals(user)){MapString, Object sourceAsMap hit.getSourceAsMap();String name (String) sourceAsMap.get(name);}else if(index.equals(car)){MapString, Object sourceAsMap hit.getSourceAsMap();String name (String) sourceAsMap.get(weight);}}}//滚动查询 public static void scrollSerach()throws Exception{System.out.print(11111111111111111);RestHighLevelClient client new RestHighLevelClient(RestClient.builder(new HttpHost(127.0.0.1, 9200, http)));SearchRequest searchRequest new SearchRequest(user); // 设置搜索的 index 。QueryBuilder queryBuilder QueryBuilders.matchAllQuery();SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder();searchSourceBuilder.query(queryBuilder); //设置搜索,可以是任何类型的 QueryBuilder.//设置每次查询数量searchSourceBuilder.size(3);//设置滚动等待时间final Scroll scroll new Scroll(TimeValue.timeValueMinutes(1));searchRequest.scroll(scroll);searchRequest.source(searchSourceBuilder);//第一次获取查询结果SearchResponse searchResponse client.search(searchRequest, RequestOptions.DEFAULT);String scrollId searchResponse.getScrollId();SearchHit[] searchHits searchResponse.getHits().getHits();for (SearchHit hit : searchHits) {MapString, Object sourceAsMap hit.getSourceAsMap();System.out.print(第一次获取查询结果,此处可做一些操作。);String name (String) sourceAsMap.get(name);System.out.println(name: name);}//遍历剩余结果while (searchHits ! null searchHits.length 0) {SearchScrollRequest scrollRequest new SearchScrollRequest(scrollId);scrollRequest.scroll(scroll);searchResponse client.scroll(scrollRequest, RequestOptions.DEFAULT);scrollId searchResponse.getScrollId();searchHits searchResponse.getHits().getHits();for (SearchHit hit : searchHits) {MapString, Object sourceAsMap hit.getSourceAsMap();System.out.print(遍历剩余结果,此处可做一些操作。);String name (String) sourceAsMap.get(name);System.out.println(name: name);}}// 清除游标ClearScrollRequest clearScrollRequest new ClearScrollRequest();clearScrollRequest.addScrollId(scrollId);ClearScrollResponse clearScrollResponse client.clearScroll(clearScrollRequest, RequestOptions.DEFAULT);boolean succeeded clearScrollResponse.isSucceeded();client.close();} } 四、性能调优  4.1、查询优化  4.2、分页内部读取流程 4.3、
http://www.zqtcl.cn/news/706438/

相关文章:

  • 营销导向的企业网站优化wordpress制作企业
  • 株洲网站建设公司wordpress资讯类主题破解版
  • 网站导航栏设计要求wordpress直达按钮
  • 网站建设寻找可以途径网站制作的目的
  • 私募基金网站建设wordpress快讯插件
  • 无锡网站搜索引擎优化校园二级网站建设
  • 用vps刷网站流量要怎么做云主机开网站教程
  • 个体户经营异常如何网上解除深圳seo云哥
  • 网站建设科研申报书沧州网站建设定制价格
  • 家纺营销型网站wordpress演示数据
  • 中卫建设厅网站中国纪检监察报
  • 网站建设费如何核算如何给网站做权重
  • 东莞营销型高端网站建设网页专题设计
  • 神兵网站建设互联网个人用户网站
  • 类似视频教程网站的wordpress主题网页设计用什么尺寸的画布好
  • 仿模板电影网站线上销售的方法和技巧
  • 漳州建设银行网站首页速成建站
  • 网站建立的链接不安全怎么解决学校网站怎样建设
  • 信阳市工程建设信息网站wordpress段子
  • 网站建设和网络搭建是一回事吗长沙网站搭建优化
  • 基础网站怎么做石景山公司
  • 吉他谱网站如何建设wordpress主题字体用隶书
  • 做一个宣传网站的策划书自己怎样推广呢
  • 网站建设布局利于优化火狐搜索引擎
  • 公司给别人做的网站违法吗hexo插件wordpress
  • 网站用什么语言做动易网站迁移
  • 网站备案上传照片几寸织梦模板网站好吗
  • 怎么通过数据库做网站的登录wordpress 注册登录插件
  • 读书网站排名大的网站建设公司好
  • 电商网站建设系统公司 网站建