Magento – Magento 2 Elasticsearch: Root mapping definition has unsupported

catalogsearchmagento-2.1magento2magento2.1.6

I am trying to setup elasticsearch 2.4.5 on a internal server and trying to use this for my EE 2.1.6 setup (magento installed in my local version). Following are the ES details.

{
  "name" : "The Grip",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "TtY4Vl4LRJ22V5wF1fhkOQ",
  "version" : {
    "number" : "2.4.5",
    "build_hash" : "c849dd13904f53e63e88efc33b2ceeda0b6a1276",
    "build_timestamp" : "2017-04-24T16:18:17Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.4"
  },
  "tagline" : "You Know, for Search"
}

When I try reindexing I get the following error.

Catalog Search indexer process unknown error:
mapper_parsing_exception: Root mapping definition has unsupported parameters:  [
  from: 0
][
  size: 10000
][
  stored_fields: [
    _id,
    _score
  ]
][
  query: {
    bool={
      should=[
        {
          match={
            sku=shirt
          }
        },
        {
          match={
            _all=shirt
          }
        },
        {
          match={
            color=shirt
          }
        },
        {
          match={
            description=shirt
          }
        },
        {
          match={
            manufacturer=shirt
          }
        },
        {
          match={
            name=shirt
          }
        },
        {
          match={
            short_description=shirt
          }
        },
        {
          match={
            status_value=shirt
          }
        },
        {
          match={
            tax_class_id_value=shirt
          }
        }
      ],
      minimum_should_match=1
    }
  }
][
  aggregations: {
    price_bucket={
      extended_stats={
        field=price_0_1
      }
    },
    category_bucket={
      terms={
        field=category_ids
      }
    }
  }
]

When I do it again then I get the following error.
Catalog Search indexer process unknown error:
illegal_argument_exception: Alias action [match] not supported

When I try using search on the store front it gives me an exception.

Exception #0 (Elasticsearch\Common\Exceptions\Missing404Exception): 
{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"magento2_product_1","index":"magento2_product_1"}],"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"magento2_product_1","index":"magento2_product_1"},"status":404}

The above exception makes sense as Magento is looking for index magento2_product_1 and in ES the index created is magento2_product_1_v1.

Does anyone know what the error is really about? Why Magento is not able to create the index fully.

Best Answer

@Rajith: "magento2_product_1" is the alias of "magento2_product_1_v1" the index that is created on ES is correct. Magento should be able to find the correct index through the alias "magento2_product_1".

It is working without any issues on Magento Devbox which uses Elastic Search 2.4.5 and I am running Magento EE 2.1.6.

There should be something wrong in your Elastic Search configuration or the permissions.

Related Topic