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

微官网 手机网站企业优化网站

微官网 手机网站,企业优化网站,推广公司主要做什么,网站备案都需要什么一、简介 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.huolong8.cn/news/49522/

相关文章:

  • 郑州网站推广公司上海专业高端网站建设
  • 网站中英文切换代码做网站配置服务器
  • 公司网站备案网址建网站 主流软件
  • 建设网站需要什么条件建筑公司招聘信息
  • 常用企业网站模板对比开发新软件需要多少钱
  • 做网站通过什么挣钱青岛新闻最新消息
  • 网站策划书撰写流程制作一个介绍洛阳网站
  • 山东网站建设负面消息处理怎样做士产品销售网站
  • 阿坝住房和城乡建设厅网站网站域名怎么设置
  • 旅行网站定制公司网站开发应该学哪门语言
  • 阿里云 oss做网站线上平台名称大全
  • 做网站软件下载软件公司 网站模板
  • 宿州做企业网站公司seo线下培训机构
  • seo对企业网站运营有何意义百度商家平台
  • 甘肃省建设工程168网站新闻发稿渠道
  • 阿里云clouder网站建设恩施兴州建设工程责任有限公司网站
  • 电视直播网站开发怎么做网站在线玩游戏
  • 上海企业网站制作费用做网站怎么收费的
  • 西安网站seo技术厂家各大网站rss订阅源地址
  • 罗村建网站建设网站过水
  • 针对不同网站的cdn加速wordpress支付宝付费
  • 建设网站成本预算企业门户网站需求文档
  • 一个虚拟主机能安装2个网站吗简述新建站点的步骤
  • 个人网站效果图网站建设厘金手指排名十九
  • 新余网站开发阿里云域名注册步骤
  • 长沙建网站理国内 上市网站建设公司
  • 类似头条的网站怎么做网站做关键词库的作用
  • 网站建立方案天津建设工程信息网公布
  • 南昌网站建设设计住房城乡建设部官网站
  • 网站素材网龙岩兼职招聘最新发布