Elasticsearch Postings highlighter Error - cannot highlight

I got the following errors when trying to search with posting highlighter:

{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "field 'author_name' was indexed without offsets, cannot highlight"
      }
    ],
    "type": "search_phase_execution_exception",
    "reason": "all shards failed",
    "phase": "query_fetch",
    "grouped": true,
    "failed_shards": [
      {
        "shard": 1,
        "index": "post",
        "node": "abc",
        "reason": {
          "type": "illegal_argument_exception",
          "reason": "field 'author_name' was indexed without offsets, cannot highlight"
        }
      }
    ],
    "caused_by": {
      "type": "illegal_argument_exception",
      "reason": "field 'author_name' was indexed without offsets, cannot highlight"
    }
  },
  "status": 400
}

And here's my mapping:

{
  "post": {
      "mappings": {
          "page": {
              "_routing": {
                  "required": true
              },
              "properties": {
                  "author_name": {
                      "type": "text",
                      "store": true,
                      "index_options": "offsets",
                      "fields": {
                          "keyword": {
                              "type": "keyword"
                          }
                      },
                      "analyzer": "the_analyzer",
                      "search_analyzer": "the_search_analyzer"
                  },
                  "editor": {
                      "properties": {
                          "author_name": {
                              "type": "keyword"
                          }
                      }
                  }
              }
          },
          "blog_post": {
              "_routing": {
                  "required": true
              },
              "properties": {
                  "author_name": {
                      "type": "text",
                      "store": true,
                      "index_options": "offsets",
                      "fields": {
                          "keyword": {
                              "type": "keyword"
                          }
                      },
                      "analyzer": "the_analyzer",
                      "search_analyzer": "the_search_analyzer"
                  },
                  "editor": {
                      "properties": {
                          "author_name": {
                              "type": "keyword"
                          }
                      }
                  }
              }
          },
          "comments": {
              "_routing": {
                  "required": true
              },
              "_parent": {
                  "type": "blog_post"
              },
              "properties": {
                  "author_name": {
                      "type": "text",
                      "store": true,
                      "index_options": "offsets",
                      "fields": {
                          "keyword": {
                              "type": "keyword"
                          }
                      },
                      "analyzer": "the_analyzer",
                      "search_analyzer": "the_search_analyzer"
                  }
              }
          }
      }
  }
}

And my query:

GET post/article/_search?routing=cat
{
  "query": {
    "bool": {
      "filter": {
        "term": {
          "category": "cat"
        }
      },
      "must": [
        {
          "query_string": {
            "query": "bill",
            "fields": ["author_name"]
          }
        }]
    }
  },
  "highlight": {
    "fields": {
      "author_name": {}
    }
  }
}
  • Elasticsearch version: 5.1.1
  • Lucence version: 6.3.0

When I did _update_by_query it works for a while, before failing again (after more data added).

I did some Googling, and found this issue on Elasticsearch repo:

https://github.com/elastic/elasticsearch/issues/8558, cmiiw, basically said that I need to have the same mapping for the same field name, on the same index. But I already did that, but I didn't know if my editor object, that has author_name can cause that issue.

How to fix this error? Thanks

1 Like

did you reindex all documents after changing the mappings?

Yes, I'm using _update_by_query, should I do _reindex instead? Do I really need to create a new index? I mean some other fields are working, just the author_name that's not working

Actually, it also happens in other fields too.

PS: I'm using ngram tokenizer, and letter, digit, punctuation, symbol as token_chars, as field analyzer

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.