Span containing big must be of type span query – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 6.8-8.9

Before you dig into reading this guide, have you tried asking OpsGPT what this log means? You’ll receive a customized analysis of your log.

Try OpsGPT now for step-by-step guidance and tailored insights into your Elasticsearch operation.

Briefly, this error occurs when the ‘span_containing’ query in Elasticsearch is not correctly formatted. The ‘big’ clause in the ‘span_containing’ query should be a span query type, but it seems it’s not in this case. To resolve this issue, you should ensure that the ‘big’ clause is a valid span query. This could involve checking the syntax and structure of your query, ensuring that the field you’re querying is a text field, and that the ‘big’ clause is correctly nested within a span query.

For a complete solution to your to your search operation, try for free AutoOps for Elasticsearch & OpenSearch . With AutoOps and Opster’s proactive support, you don’t have to worry about your search operation – we take charge of it. Get improved performance & stability with less hardware.

This guide will help you check for common problems that cause the log ” span_containing [big] must be of type span query ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: query, index.

Log Context

Log “span_containing [big] must be of type span query” class name is SpanContainingQueryBuilder.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 currentFieldName = parser.currentName();
 } else if (token == XContentParser.Token.START_OBJECT) {
 if (BIG_FIELD.match(currentFieldName; parser.getDeprecationHandler())) {
 QueryBuilder query = parseInnerQueryBuilder(parser);
 if (query instanceof SpanQueryBuilder == false) {
 throw new ParsingException(parser.getTokenLocation(); "span_containing [big] must be of type span query");
 }
 big = (SpanQueryBuilder) query;
 checkNoBoost(NAME; currentFieldName; parser; big);
 } else if (LITTLE_FIELD.match(currentFieldName; parser.getDeprecationHandler())) {
 QueryBuilder query = parseInnerQueryBuilder(parser);

 

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?