Java 操作 ElasticSearch API 中的 update
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 操作 ElasticSearch API 中的 update,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2166字,纯文字阅读大概需要4分钟。
内容图文
![Java 操作 ElasticSearch API 中的 update](/upload/InfoBanner/zyjiaocheng/596/583993e52f9c4d9c94de41c14a02e036.jpg)
方式一:修改文档中的某些特定的字段值
![Java 操作 ElasticSearch API 中的 update - 文章图片](/upload/getfiles/0001/2021/4/29/20210429082701961.jpg)
![Java 操作 ElasticSearch API 中的 update - 文章图片](/upload/getfiles/0001/2021/4/29/20210429082702080.jpg)
try { Object[] objects = new Object[]{}; // 查询的结果字段,类似于(select id, XSE from ..) String[] fields = {"id", "XSE"}; FetchSourceContext sourceContext = new FetchSourceContext(true, fields, null); SearchSourceBuilder sb = new SearchSourceBuilder(); sb.size(10000); sb.query(QueryBuilders.boolQuery().filter(QueryBuilders.termQuery("checkStatus", 1)) .filter(QueryBuilders.termsQuery("DM", storeCodes)) ); sb.fetchSource(sourceContext); sb.sort("id", SortOrder.ASC); SearchRequest searchRequest = new SearchRequest(new String[]{originalNormRe.getAliase(yf)}, sb); SearchResponse searchResponse = originalNormRe.getEsClient().search(searchRequest, RequestOptions.DEFAULT); SearchHit[] searchHits = searchResponse.getHits().getHits(); long totalHits = searchResponse.getHits().totalHits; logger.info("Total Hits --->" + totalHits); int count = 0; while (searchHits != null && searchHits.length > 0) { // 批量修改original_norm_(规范明细数据) BulkRequest request = new BulkRequest(); for (SearchHit hit : searchHits) { objects = hit.getSortValues(); Map<String, Object> map = hit.getSourceAsMap(); String id = (String) map.get("id"); Double xse = Common.getDouble(map.get("XSE")); XContentBuilder xcb = XContentFactory.jsonBuilder().startObject() .field("countryUpXse", Common.mul(xse, upCoefficient, 2)) .field("countryUpXseUpdate", Common.mul(xse, upCoefficient, 2)) .endObject(); request.add(new UpdateRequest(hit.getIndex(), "data", id) .doc(xcb)); } request.setRefreshPolicy(RefreshPolicy.IMMEDIATE); request.timeout(TimeValue.timeValueMinutes(2)); request.timeout("10m"); BulkResponse bulkResponse = originalNormRe.getEsClient().bulk(request, RequestOptions.DEFAULT); if (bulkResponse.hasFailures()) { logger.error(bulkResponse.buildFailureMessage()); } else { logger.info("=========================================OK========================================="); } logger.info(String.valueOf(count += searchHits.length)); sb.searchAfter(objects); searchResponse = originalNormRe.getEsClient().search(searchRequest, RequestOptions.DEFAULT); searchHits = searchResponse.getHits().getHits(); } } catch (Exception e) { logger.error(e.getMessage(), e); }updateSpecificFields
内容总结
以上是互联网集市为您收集整理的Java 操作 ElasticSearch API 中的 update全部内容,希望文章能够帮你解决Java 操作 ElasticSearch API 中的 update所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。