Field collapsing on alias fields?

I'm trying to collapse on a field name field1 across different indexes. All indexes but one have the same field name field1 and one index has a different field name field2. So, in that index, I'm defining an alias field field1 which points to field2. My hope is to be able to collapse on field1 across all indexes, but apparently this doesn't work.

Here is how to simply reproduce the problem I'm facing. First, we create two indexes:

PUT index1
{
  "settings": {
    "index.number_of_shards": 1
  }, 
  "mappings": {
    "properties": {
      "field1": {
        "type": "keyword"
      }
    }
  }
}

PUT index2
{
  "settings": {
    "index.number_of_shards": 1
  }, 
  "mappings": {
    "properties": {
      "field2": {
        "type": "keyword"
      },
      "field1": {
        "type": "alias",
        "path": "field2"
      }
    }
  }
}

Then we index one document in each index

PUT index1/_doc/1
{
  "field1": "test1"
}
PUT index2/_doc/1
{
  "field2": "test2"
}

And finally I'm trying to collapse on the "common" field

POST index*/_search 
{
  "collapse": {
    "field": "field1",
    "inner_hits": {
      "name": "hits"
    }
  }
}

And I get this:

{
  "error": {
    "root_cause": [],
    "type": "search_phase_execution_exception",
    "reason": "",
    "phase": "fetch",
    "grouped": true,
    "failed_shards": [],
    "caused_by": {
      "type": "illegal_argument_exception",
      "reason": "collapse field differ across shards [field1] != [field2]"
    }
  },
  "status": 400
}

I could not find anything in the documentation or in Github issues that would explain this.

Given this PR, one would think that this is indeed possible, but apparently I'm missing something.

I'd appreciate if anyone could shed some light on this.
Thank you so much!

the PR you referred to adds a test that only test field aliases within a single index and if those a properly resolved. Your use-case is a little bit different and thus the error occurs (field names differ after the resolving the field names).

Can you open an issue in the elasticsearch repo to figure out if this is a bug or at least needs an update in the docs to properly mention it.

Thanks!

Thank you so much Alex!
Here it is: https://github.com/elastic/elasticsearch/issues/50121

It's been confirmed it is indeed a bug.

1 Like

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