简体   繁体   English

在 java api 客户端中替换 SearchTemplateRequest class

[英]Replacement for SearchTemplateRequest class in java api client

I am migrating a java application from elastic search high level client to java api client.我正在将 java 应用程序从弹性搜索高级客户端迁移到 java api 客户端。 There is a SearchTemplateRequest class in elastic search java high level client.弹性搜索 java 高级客户端中有一个 SearchTemplateRequest class。 But I couldn't find any corresponding class in java api client.但是我在java api客户端找不到对应的class。 Can someone help on this?有人可以帮忙吗? Old code snippet is as below.旧代码片段如下。

public SearchTemplateResponse getScriptResponse(String indexName, String scriptName, Map<String, Object> scriptParams) throws IOException {
        SearchTemplateRequest request = null;
        SearchTemplateResponse response = null;
        try {
            SearchTemplateRequest request = new SearchTemplateRequest();
        request.setRequest(new SearchRequest(new String[] { indexName }, trackTotalHitsSourceBuilder()));
        request.setScriptType(ScriptType.STORED);
        request.setScript(scriptName);
        request.setScriptParams(scriptParams);
        request.getRequest().source().trackTotalHits();
        response = getClient().searchTemplate(request, RequestOptions.DEFAULT);
        } catch (Exception e) {
            throw e;
        }
        return response;
    }


I'm using above code block to get the response of bucket aggregation with script query.

I recommend read the Getting Started Java API Client .我建议阅读入门 Java API 客户端

For create first connection read the link.要创建第一个连接,请阅读链接。

Example using script and updateByQuery:使用脚本和 updateByQuery 的示例:

Map<String, JsonData> params = Map.of("key", JsonData.of("value"));

Script script = new Script.Builder()
    .stored(StoredScriptId.of(ssi -> ssi.id("script_name").params(params)))
    .build();

UpdateByQueryRequest updateByQueryRequest = UpdateByQueryRequest.of(
    up -> up.index("idx_script_tst")
        .query(Query.of(q -> q.matchAll(MatchAllQuery.of(maq -> maq))))
        .script(script));

var updateResponse = client.updateByQuery(updateByQueryRequest);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 替换 java api 客户端中的 SearchSourceBuilder class - Replacement for SearchSourceBuilder class in java api client 替换 ElasticSearch java api 客户端中的 searchForStream 方法 - Replacement for searchForStream method in ElasticSearch java api client 为AngularJS客户端寻找App Engine Channel Api Java替代解决方案 - Looking for App Engine Channel Api Java replacement solution for AngularJS client java.lang.NoClassDefFoundError: org/elasticsearch/script/mustache/SearchTemplateRequest - java.lang.NoClassDefFoundError: org/elasticsearch/script/mustache/SearchTemplateRequest 用Java替换过时的Hashtable类 - Replacement for obsolete Hashtable class in Java Java 11 中的内部 API 替换 - Internal API Replacement in Java 11 Java 10替代sun MonitoredHost类 - Java 10 replacement for sun MonitoredHost class Maven无法解析类testlink.api.java.client.TestLinkAPIException - Maven is unable to resolve class testlink.api.java.client.TestLinkAPIException Java ME上的Class.getSuperclass()替换? - Class.getSuperclass() replacement on Java ME? 将Cassandra客户端Hector迁移到Java驱动程序-替换ConnectionListener - Migration of Cassandra client Hector to java driver - replacement for ConnectionListener
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM