Elasticsearch 5-奇怪的错误(值源配置无效;必须具有字段上下文或脚本或标记为未包装)

问题描述 投票:3回答:1

我正忙于将Java平台从ES 2升级到ES 5.4.3,到目前为止一切正常,除了一个查询返回的错误不是必须的。有人看过吗?

Caused by: java.lang.IllegalStateException: value source config is invalid; must have either a field context or a script or marked as unwrapped
at org.elasticsearch.search.aggregations.support.ValuesSourceConfig.toValuesSource(ValuesSourceConfig.java:228)
at org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory.createInternal(ValuesSourceAggregatorFactory.java:51)
at org.elasticsearch.search.aggregations.AggregatorFactory.create(AggregatorFactory.java:221)
at org.elasticsearch.search.aggregations.AggregatorFactories.createSubAggregators(AggregatorFactories.java:208)
at org.elasticsearch.search.aggregations.AggregatorBase.<init>(AggregatorBase.java:78)
at org.elasticsearch.search.aggregations.bucket.BucketsAggregator.<init>(BucketsAggregator.java:48)
at org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.<init>(TermsAggregator.java:178)
at org.elasticsearch.search.aggregations.bucket.terms.AbstractStringTermsAggregator.<init>(AbstractStringTermsAggregator.java:42)
at org.elasticsearch.search.aggregations.bucket.terms.GlobalOrdinalsStringTermsAggregator.<init>(GlobalOrdinalsStringTermsAggregator.java:92)
at org.elasticsearch.search.aggregations.bucket.terms.TermsAggregatorFactory$ExecutionMode$2.create(TermsAggregatorFactory.java:277)
at org.elasticsearch.search.aggregations.bucket.terms.TermsAggregatorFactory.doCreateInternal(TermsAggregatorFactory.java:176)
at org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory.createInternal(ValuesSourceAggregatorFactory.java:55)
at org.elasticsearch.search.aggregations.AggregatorFactory.create(AggregatorFactory.java:221)
at org.elasticsearch.search.aggregations.AggregatorFactories.createTopLevelAggregators(AggregatorFactories.java:224)
at org.elasticsearch.search.aggregations.AggregationPhase.preProcess(AggregationPhase.java:55)
at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:106)
at org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:247)
at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:262)
at org.elasticsearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:339)
at org.elasticsearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:336)
at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:69)
at org.elasticsearch.transport.TransportService$7.doRun(TransportService.java:627)
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:638)
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)
... 1 more
java elasticsearch stack-trace
1个回答
0
投票

我不确定没有更多的上下文,但是我会在这里指出,我通过向我之前缺少的AggregationBuilders中添加“ field”属性来解决了该错误。

之前:

RangeAggregationBuilder range = AggregationBuilders.range("range_name");

之后:

RangeAggregationBuilder range = AggregationBuilders.range("range_name").field("whatever.mapping.you.need");

同样,在没有进一步背景的情况下,在您的具体情况下真的很难说。但是考虑到这是Java(这是我的问题),而不是与kibana相关,并且由于我的解决方案如此简单,我希望遇到此问题的某个人(可能是future-me)能看到这一点,并为此省去很多麻烦。] >

© www.soinside.com 2019 - 2024. All rights reserved.