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

做网站和推广需要多少钱诚信企业查询系统

做网站和推广需要多少钱,诚信企业查询系统,上海网站设计开发公,asp网站 并发数Search API 搜索请求 SearchRequest用于与搜索文档、聚合、suggestions相关的任何操作#xff0c;还提供了在结果文档上请求高亮的方法。 在最基本的表单中#xff0c;我们可以向请求添加查询#xff1a; SearchRequest searchRequest new SearchRequest(); SearchSourceB… Search API 搜索请求 SearchRequest用于与搜索文档、聚合、suggestions相关的任何操作还提供了在结果文档上请求高亮的方法。 在最基本的表单中我们可以向请求添加查询 SearchRequest searchRequest new SearchRequest(); SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchAllQuery()); searchRequest.source(searchSourceBuilder); 创建SeachRequest没有参数这将针对所有索引运行。大多数搜索参数都添加到SearchSourceBuilder中它为搜索请求body中的所有内容提供了setter。将match_all查询添加到SearchSourceBuilder。将SearchSourceBuilder添加到SeachRequest。可选参数 我们先来看一下SearchRequest的一些可选参数 SearchRequest searchRequest new SearchRequest(posts); searchRequest.types(doc); 将请求限制为一个索引。将请求限制为一个类型。还有一些其他有趣的可选参数 searchRequest.routing(routing); 设置路由参数。searchRequest.indicesOptions(IndicesOptions.lenientExpandOpen()); 设置IndicesOptions控制如何解析不可用的索引以及如何扩展通配符表达式。searchRequest.preference(_local); 使用首选项参数例如执行搜索以优先选择本地碎片默认是随机的跨碎片。使用SearchSourceBuilder 控制搜索行为的大多数选项都可以在SearchSourceBuilder上设置它包含或多或少与Rest API的搜索请求body中等效的选项。 以下是一些常见选项的几个示例 SearchSourceBuilder sourceBuilder new SearchSourceBuilder(); sourceBuilder.query(QueryBuilders.termQuery(user, kimchy)); sourceBuilder.from(0); sourceBuilder.size(5); sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); 使用默认选项创建SearchSourceBuilder。设置查询可以是任何类型的QueryBuilder。设置确定结果要从哪个索引开始搜索的from选项默认为0。设置确定搜索命中返回的数的size选项默认为10。设置一个可选的超时控制允许搜索的时间。在此之后只需将SearchSourceBuilder添加到SearchRequest SearchRequest searchRequest new SearchRequest(); searchRequest.indices(posts); searchRequest.source(sourceBuilder); 构建查询 使用QueryBuilder对象创建搜索查询QueryBuilder存在对于Elasticsearch的查询DSL支持的每种搜索查询类型。 可以使用其构造函数创建QueryBuilder MatchQueryBuilder matchQueryBuilder new MatchQueryBuilder(user, kimchy); 创建一个在字段“user”上匹配文本“kimchy”的全文匹配查询。创建后QueryBuilder对象提供了配置其创建的搜索查询选项的方法 matchQueryBuilder.fuzziness(Fuzziness.AUTO); matchQueryBuilder.prefixLength(3); matchQueryBuilder.maxExpansions(10); 在匹配查询上启用模糊匹配。在匹配查询上设置前缀长度选项。设置最大扩展选项以控制查询的模糊过程。也可以使用QueryBuilders实用程序类创建QueryBuilder对象此类提供了可用于使用流畅的编程样式创建QueryBuilder对象的辅助方法 QueryBuilder matchQueryBuilder QueryBuilders.matchQuery(user, kimchy).fuzziness(Fuzziness.AUTO).prefixLength(3).maxExpansions(10); 无论用于创建它的方法是什么都必须将QueryBuilder对象添加到SearchSourceBuilder如下所示 searchSourceBuilder.query(matchQueryBuilder); 构建查询页面提供了所有可用的搜索查询的列表及其相应的QueryBuilder对象和QueryBuilders辅助方法。 指定排序 SearchSourceBuilder允许添加一个或多个SortBuilder实例有四种特殊的实现Field-Score-GeoDistance-和ScriptSortBuilder。 sourceBuilder.sort(new ScoreSortBuilder().order(SortOrder.DESC)); sourceBuilder.sort(new FieldSortBuilder(_uid).order(SortOrder.ASC)); 按_score降序排序默认值。也可以按_id字段进行升序排序。源过滤 默认情况下搜索请求会返回文档_source的内容但与Rest API中的内容一样你可以覆盖此行为例如你可以完全关闭_source检索 sourceBuilder.fetchSource(false); 该方法还接受一个或多个通配符模式的数组以控制以更精细的方式包含或排除哪些字段 String[] includeFields new String[] {title, user, innerObject.*}; String[] excludeFields new String[] {_type}; sourceBuilder.fetchSource(includeFields, excludeFields); 请求高亮 通过在SearchSourceBuilder上设置HighlightBuilder可以实现高亮搜索结果通过将一个或多个HighlightBuilder.Field实例添加到HighlightBuilder可以为每个字段定义不同的高亮行为。 SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder(); 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); searchSourceBuilder.highlighter(highlightBuilder); 创建一个新的HighlightBuilder。为title字段创建字段高光色。设置字段高光色类型。将字段高光色添加到高亮构建器。Rest API文档中有许多选项需要详细说明Rest API参数例如pre_tags通常由具有相似名称的setter更改而来例如#preTags(String ...)。 稍后可以从SearchResponse中检索高亮的文本片段。 请求聚合 可以通过先创建适当的AggregationBuilder然后在SearchSourceBuilder上设置聚合来将聚合添加到搜索中在以下示例中我们在公司名称上创建terms聚合 使用子聚合在公司员工平均年龄上 SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder(); TermsAggregationBuilder aggregation AggregationBuilders.terms(by_company) .field(company.keyword); aggregation.subAggregation(AggregationBuilders.avg(average_age) .field(age)); searchSourceBuilder.aggregation(aggregation); 构建聚合页面提供了所有可用的聚合的列表及其对应的AggregationBuilder对象和AggregationBuilders辅助方法。 稍后我们将看到如何访问SearchResponse中的聚合。 请求Suggestion 要向搜索请求添加建议请使用从SuggestBuilders工厂类中可轻松访问的SuggestionBuilder的实现之一Suggestion构建器需要添加到顶级SuggestBuilder它本身可以在SearchSourceBuilder上设置。 SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder(); SuggestionBuilder termSuggestionBuilder SuggestBuilders.termSuggestion(user).text(kmichy); SuggestBuilder suggestBuilder new SuggestBuilder(); suggestBuilder.addSuggestion(suggest_user, termSuggestionBuilder); searchSourceBuilder.suggest(suggestBuilder); 为user字段和文本kmichy创建一个新的TermSuggestionBuilder。添加suggestion构建器并将其命名为suggest_user。我们稍后将看到如何从SearchResponse中检索suggestion。 分析查询和聚合 分析API可用于分析特定搜索请求的查询和聚合的执行情况为了使用它必须在SearchSourceBuilder上将profile标志设置为true SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder(); searchSourceBuilder.profile(true); 执行SearchRequest后相应的SearchResponse将包含分析结果。 同步执行 以下列方式执行SearchRequest时客户端在继续执行代码之前等待返回SearchResponse SearchResponse searchResponse client.search(searchRequest, RequestOptions.DEFAULT); 异步执行 执行SearchRequest也可以以异步方式完成以便客户端可以直接返回用户需要通过将请求和监听器传递给异步搜索方法来指定响应或潜在的故障如何处理 client.searchAsync(searchRequest, RequestOptions.DEFAULT, listener); 要执行的SearchRequest和执行完成时要使用的ActionListener。异步方法不会阻塞并且立即返回完成后如果执行成功完成则使用onResponse方法回调ActionListener如果失败则使用onFailure方法。 SearchResponse的典型监听器如下所示 ActionListenerSearchResponse listener new ActionListenerSearchResponse() {Overridepublic void onResponse(SearchResponse searchResponse) { } Override public void onFailure(Exception e) { } }; onResponse执行成功完成时调用。onFailure在整个SearchRequest失败时调用。SearchResponse 通过执行搜索返回的SearchResponse提供有关搜索执行本身以及对返回文档的访问的详细信息首先有关于请求执行本身的有用信息例如HTTP状态码执行时间或请求是提前终止还是超时 RestStatus status searchResponse.status(); TimeValue took searchResponse.getTook(); Boolean terminatedEarly searchResponse.isTerminatedEarly(); boolean timedOut searchResponse.isTimedOut(); 其次响应还通过提供有关搜索影响的碎片总数以及成功与不成功碎片的统计信息的碎片级别执行的信息可以通过在ShardSearchFailures上迭代数组来处理可能的失败如下例所示 int totalShards searchResponse.getTotalShards(); int successfulShards searchResponse.getSuccessfulShards(); int failedShards searchResponse.getFailedShards(); for (ShardSearchFailure failure : searchResponse.getShardFailures()) { // failures should be handled here } 检索SearchHits 要访问返回的文档我们需要先获取响应中包含的SearchHits SearchHits hits searchResponse.getHits(); SearchHits提供有关所有匹配的全局信息例如总命中数或最高分数 long totalHits hits.getTotalHits(); float maxScore hits.getMaxScore(); 嵌套在SearchHits中的是可以迭代的单个搜索结果 SearchHit[] searchHits hits.getHits(); for (SearchHit hit : searchHits) {// do something with the SearchHit } SearchHit提供对每个搜索命中的索引、类型、docId和分数等基本信息的访问 String index hit.getIndex(); String type hit.getType(); String id hit.getId(); float score hit.getScore(); 此外它还允许你以简单的JSON-String或键/值对映射的形式返回文档源在此映射中常规字段由字段名称键控并包含字段值多值字段作为对象列表返回嵌套对象作为另一个键/值映射返回这些案例需要相应地进行投射 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); 检索高亮 如果需要可以从结果中的每个SearchHit检索高亮的文本片段命中对象提供对HighlightField实例的字段名称映射的访问每个实例包含一个或多个高亮的文本片段 SearchHits hits searchResponse.getHits(); for (SearchHit hit : hits.getHits()) {MapString, HighlightField highlightFields hit.getHighlightFields();HighlightField highlight highlightFields.get(title); Text[] fragments highlight.fragments(); String fragmentString fragments[0].string(); } 获取title字段的高亮。获取包含高亮的字段内容的一个或多个片段。检索聚合 可以从SearchResponse检索聚合先获取聚合树的根Aggregations对象然后按名称获取聚合。 Aggregations aggregations searchResponse.getAggregations(); Terms byCompanyAggregation aggregations.get(by_company); Bucket elasticBucket byCompanyAggregation.getBucketByKey(Elastic); Avg averageAge elasticBucket.getAggregations().get(average_age); double avg averageAge.getValue(); 获取by_company的terms聚合。获取使用Elastic键入的桶。从该桶中获取average_age子聚合。请注意如果按名称访问聚合则需要根据所请求的聚合类型指定聚合接口否则将引发ClassCastException Range range aggregations.get(by_company); 这将引发异常因为“by_company”是一个terms聚合但我们尝试将其作为range聚合进行检索。还可以将所有聚合作为由聚合名称键入的映射进行访问在这种情况下需要显式地进行到正确聚合接口的转换 MapString, Aggregation aggregationMap aggregations.getAsMap(); Terms companyAggregation (Terms) aggregationMap.get(by_company); 还有一些getter将所有顶级聚合作为列表返回 ListAggregation aggregationList aggregations.asList(); 最后但并非最不重要的是你可以迭代所有聚合然后例如决定如何根据类型进一步处理它们 for (Aggregation agg : aggregations) {String type agg.getType(); if (type.equals(TermsAggregationBuilder.NAME)) { Bucket elasticBucket ((Terms) agg).getBucketByKey(Elastic); long numberOfDocs elasticBucket.getDocCount(); } } 检索suggestions 要从SearchResponse获取suggestions请使用Suggest对象作为入口点然后检索嵌套的suggestion对象 Suggest suggest searchResponse.getSuggest(); TermSuggestion termSuggestion suggest.getSuggestion(suggest_user); for (TermSuggestion.Entry entry : termSuggestion.getEntries()) { for (TermSuggestion.Entry.Option option : entry) { String suggestText option.getText().string(); } } 使用Suggest类访问suggestions。可以通过名称检索suggestions你需要将它们分配给正确类型的Suggestion类此处为TermSuggestion否则抛出ClassCastException。迭代suggestion条目。在一个条目中迭代选项。检索性能分析结果 使用getProfileResults()方法从SearchResponse检索分析结果此方法返回包含SearchSquest执行中涉及的每个碎片的ProfileShardResult对象的MapProfileShardResult使用唯一标识分析结果对应的碎片的键存储在Map中。 下面是一个示例代码显示如何迭代每个碎片的所有分析结果 MapString, ProfileShardResult profilingResults searchResponse.getProfileResults(); for (Map.EntryString, ProfileShardResult profilingResult : profilingResults.entrySet()) { String key profilingResult.getKey(); ProfileShardResult profileShardResult profilingResult.getValue(); } 从SearchResponse中检索ProfileShardResult的Map。如果键已知则可以通过碎片的键检索分析结果否则迭代所有分析结果可能更简单。检索标识ProfileShardResult属于哪个碎片的键。检索给定碎片的ProfileShardResult。ProfileShardResult对象本身包含一个或多个查询分析结果每个查询针对基础Lucene索引执行 ListQueryProfileShardResult queryProfileShardResults profileShardResult.getQueryProfileResults(); for (QueryProfileShardResult queryProfileResult : queryProfileShardResults) { } 检索QueryProfileShardResult的列表。迭代每个QueryProfileShardResult。每个QueryProfileShardResult都提供对详细查询树执行的访问作为ProfileResult对象列表返回 for (ProfileResult profileResult : queryProfileResult.getQueryResults()) { String queryName profileResult.getQueryName(); long queryTimeInMillis profileResult.getTime(); ListProfileResult profiledChildren profileResult.getProfiledChildren(); } 迭代分析结果。检索Lucene查询的名称。检索执行Lucene查询所花费的时间。检索子查询的分析结果如果有。Rest API文档包含有关分析查询的更多信息以及查询分析信息的说明。 QueryProfileShardResult还可以访问Lucene收集器的分析信息 CollectorResult collectorResult queryProfileResult.getCollectorResult(); String collectorName collectorResult.getName(); Long collectorTimeInMillis collectorResult.getTime(); ListCollectorResult profiledChildren collectorResult.getProfiledChildren(); 检索Lucene收集器的分析结果。检索Lucene收集器的名称。检索执行Lucene收集器所花费的时间。检索子收集器的分析结果如果有。Rest API文档包含有关Lucene收集器的分析信息的更多信息。 以与查询树执行非常类似的方式QueryProfileShardResult对象提供对详细聚合树执行的访问 AggregationProfileShardResult aggsProfileResults profileShardResult.getAggregationProfileResults(); for (ProfileResult profileResult : aggsProfileResults.getProfileResults()) { String aggName profileResult.getQueryName(); long aggTimeInMillis profileResult.getTime(); ListProfileResult profiledChildren profileResult.getProfiledChildren(); } 检索AggregationProfileShardResult。迭代聚合分析结果。检索聚合的类型对应于用于执行聚合的Java类。检索执行Lucene收集器所花费的时间。检索子聚合的分析结果如果有。Rest API文档包含有关分析聚合的更多信息。 转载于:https://www.cnblogs.com/zeenzhou/p/11502924.html
http://www.pierceye.com/news/586301/

相关文章:

  • 广州网站制作实力乐云seowordpress 评论模块
  • 永久免费制作网站木门行业做网站有什么好处
  • 怎么区分模板网站wordpress菜单怎么建
  • 网站开发最新效果企业手机网站建
  • 网站群管理系统哪个好wordpress制作会员功能
  • 做套现网站网站的访问量
  • 做网站网页需要学些什么做网站学的什么专业
  • 建设银行的官方网站纪念币公司宣传页设计印刷
  • 网站左侧图片悬浮代码常州工厂网站建设
  • 智慧团建网站怎么转团关系app制作开发小程序制作开发
  • 誉字号网站wordpress 展示模板下载
  • 网站不接入备案成都市建设工程质量协会网站
  • 企业网站html网站开发济南招聘
  • 网站html优化方法音乐网站开发参考文献
  • 网站建设及推广方案ppt模板微信小程序开发工具下载哪个版本
  • 固安县城乡和住房建设局网站科技公司手机端网站
  • 寿光网站建设思科企业网络拓扑图
  • 中国建设银行河南省分行网站建筑人才服务中心官网
  • 响应式app网站模板单页淘宝客网站2014年行吗
  • 西安网站推广优化高端定制网站开发设计建站流程
  • m版网站开发公司如何做网络推广营销
  • 济宁商城网站开发设计网址源码在线查看
  • 网站建设公司介绍百度电脑怎么用wordpress
  • 宛城区网站建设广东seo推广方案
  • 北京建网站定制价格网站风格总结
  • 如何建设一个购物网站wordpress 优酷插件
  • 你们网站做301网站开发规模和工作量的计算
  • 班级网站建设甘肃住房和城乡建设厅网站
  • 网站建设哪家性价比高住房和城乡建设部网站办事大厅里边
  • 外贸小语种网站建设深圳市保障性住房申请官网