-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Description
Elasticsearch version (bin/elasticsearch --version): 7.13.1
Plugins installed: [analysis-icu]
JVM version (java -version): built-in
OS version (uname -a if on a Unix-like system): macOS Big Sur
Having replaced the use of multi_match cross_fields queries with the new combined_fields query, I am now running into a dead-end.
The query is very simple:
GET /index-name/_search
{
"query": {
"combined_fields": {
"query": "μαύρο",
"operator": "AND",
"fields": [
"title",
"description"
]
}
}
}
and fails with the following stacktrace:
org.elasticsearch.action.search.SearchPhaseExecutionException: all shards failed at org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseFailure(AbstractSearchAsyncAction.java:661) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:384) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:694) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.search.AbstractSearchAsyncAction.onShardFailure(AbstractSearchAsyncAction.java:467) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.search.AbstractSearchAsyncAction.access$000(AbstractSearchAsyncAction.java:62) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.search.AbstractSearchAsyncAction$1.onFailure(AbstractSearchAsyncAction.java:316) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.ActionListener$Delegating.onFailure(ActionListener.java:66) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:48) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:400) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.transport.TransportService$5.handleException(TransportService.java:738) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1283) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1392) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1366) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:50) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.transport.TransportChannel.sendErrorResponse(TransportChannel.java:45) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:40) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.ActionRunnable.onFailure(ActionRunnable.java:77) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:28) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:33) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:732) [elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) [elasticsearch-7.13.1.jar:7.13.1] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?] at java.lang.Thread.run(Thread.java:831) [?:?] Caused by: org.elasticsearch.ElasticsearchException$1 at org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:633) ~[elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:382) [elasticsearch-7.13.1.jar:7.13.1] ... 22 more Caused by: java.lang.IndexOutOfBoundsException at java.nio.Buffer.checkIndex(Buffer.java:742) ~[?:?] at java.nio.DirectByteBuffer.get(DirectByteBuffer.java:297) ~[?:?] at org.apache.lucene.store.ByteBufferGuard.getByte(ByteBufferGuard.java:119) ~[lucene-core-8.8.2.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.apache.lucene.store.ByteBufferIndexInput$SingleBufferImpl.readByte(ByteBufferIndexInput.java:434) ~[lucene-core-8.8.2.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.apache.lucene.codecs.lucene80.Lucene80NormsProducer$8.longValue(Lucene80NormsProducer.java:397) ~[lucene-core-8.8.2.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.apache.lucene.search.XMultiNormsLeafSimScorer$MultiFieldNormValues.advanceExact(XMultiNormsLeafSimScorer.java:135) ~[elasticsearch-7.13.1.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.apache.lucene.search.XMultiNormsLeafSimScorer.getNormValue(XMultiNormsLeafSimScorer.java:91) ~[elasticsearch-7.13.1.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.apache.lucene.search.XMultiNormsLeafSimScorer.score(XMultiNormsLeafSimScorer.java:103) ~[elasticsearch-7.13.1.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.apache.lucene.search.XCombinedFieldQuery$CombinedFieldScorer.score(XCombinedFieldQuery.java:453) ~[elasticsearch-7.13.1.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.apache.lucene.search.TopScoreDocCollector$SimpleTopScoreDocCollector$1.collect(TopScoreDocCollector.java:76) ~[lucene-core-8.8.2.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.apache.lucene.search.Weight$DefaultBulkScorer.scoreRange(Weight.java:252) ~[lucene-core-8.8.2.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:239) ~[lucene-core-8.8.2.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.elasticsearch.search.internal.CancellableBulkScorer.score(CancellableBulkScorer.java:45) ~[elasticsearch-7.13.1.jar:7.13.1] at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:39) ~[lucene-core-8.8.2.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.elasticsearch.search.internal.ContextIndexSearcher.searchLeaf(ContextIndexSearcher.java:187) ~[elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:160) ~[elasticsearch-7.13.1.jar:7.13.1] at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:445) ~[lucene-core-8.8.2.jar:8.8.2 a92a05e195b775b30ca410bc0a26e8e79e7b3bfb - mdrob - 2021-04-06 16:33:27] at org.elasticsearch.search.query.QueryPhase.searchWithCollector(QueryPhase.java:332) ~[elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.search.query.QueryPhase.executeInternal(QueryPhase.java:287) ~[elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:139) ~[elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:368) ~[elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:422) ~[elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.search.SearchService.lambda$executeQueryPhase$2(SearchService.java:394) ~[elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.ActionRunnable.lambda$supply$0(ActionRunnable.java:47) ~[elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62) ~[elasticsearch-7.13.1.jar:7.13.1] at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) ~[elasticsearch-7.13.1.jar:7.13.1] ... 6 more
It is really weird and I cannot seem to spot the cause, since:
- If I use other (random) queries, the query either succeeds or fails with the same exception
- If I omit the "title" field, the query succeeds,
- If I omit the "description" field, the query succeeds
Please note that this is definitely a combined_fields issue, since changing the query type to multi_match cross_fields makes it work properly.
This seems to be a Lucene issue, but I have no further idea.
@jtibshirani I suppose you might be interested in this one