首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ElasticSearch 5.2.1中从groovy脚本迁移到无痛苦脚本

在ElasticSearch 5.2.1中从groovy脚本迁移到无痛苦脚本
EN

Stack Overflow用户
提问于 2017-03-09 15:40:00
回答 1查看 338关注 0票数 2

我一直使用groovy脚本作为ScriptType.File。我的groovy脚本的一部分如下所示。

代码语言:javascript
复制
def refApplicValues =_source.refApplicValue;
def lineNumbers = refApplicValues.tokenize('|');

现在,我正在迁移到使用无痛脚本的ElasticSearch 5.2.1。我对我的脚本进行了一些修改,以匹配无痛语法,例如:

代码语言:javascript
复制
def refApplicValues =params._source.refApplicValue;
def lineNumbers = refApplicValues.tokenize('|');

当我现在运行我的脚本时,它抛出了运行时错误:

代码语言:javascript
复制
Caused by: QueryPhaseExecutionException[Query Failed [Failed to execute main query]]; nested: ScriptException[runtime error]; nested: IllegalArgumentException[Unable to find dynamic method [tokenize] with [1] arguments for class [java.lang.String].];
    at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:405)
    at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:106)
    at org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:246)
    at org.elasticsearch.search.SearchService.executeFetchPhase(SearchService.java:360)
    at org.elasticsearch.action.search.SearchTransportService$9.messageReceived(SearchTransportService.java:322)
    at org.elasticsearch.action.search.SearchTransportService$9.messageReceived(SearchTransportService.java:319)
    at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:69)
    at org.elasticsearch.transport.TransportService$7.doRun(TransportService.java:610)
    at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:596)
    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

它告诉我我不能使用tokenize。有没有什么相关的功能可以替代?

EN

回答 1

Stack Overflow用户

发布于 2017-08-07 03:15:22

您可以在无痛环境中使用StringTokenizer

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42689394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档