ejrowley
ejrowley

Reputation: 503

Elasticsearch "failed to find analyzer"

I have created a synonym analyser on an index:

curl http://localhost:9200/test_index/_settings?pretty
{
  "test_index" : {
    "settings" : {
      "index" : {
        "creation_date" : "1429175067557",
        "analyzer" : {
          "search_synonyms" : {
            "filter" : [ "lowercase", "search_synonym_filter" ],
            "tokenizer" : "standard"
          }
        },
        "uuid" : "Zq6Id8xsRWGofJrNCb7M8w",
        "number_of_replicas" : "1",
        "analysis" : {
          "filter" : {
            "search_synonym_filter" : {
              "type" : "synonym",
              "synonyms" : [ "sneakers,pumps" ]
            }
          }
        },
        "number_of_shards" : "5",
        "version" : {
          "created" : "1050099"
        }
      }
    }
  }
}

But when I try to use it with the mapping:

curl -XPUT 'http://localhost:9200/test_index/_mapping/product_catalog?pretty' -H "Content-Type: application/json" \
   -d '{"product_catalog": {"properties" : {"name": {"type": "string", "include_in_all": true, "analyzer":"search_synonyms"} }}}'

I get the error:

{
  "error" : "MapperParsingException[Analyzer [search_synonyms] not found for field [name]]",
  "status" : 400
}

I have also tried to just check the analyser with:

curl 'http://localhost:9200/test_index/_analyze?analyzer=search_synonyms&pretty=1&text=pumps'

but still get an error:

ElasticsearchIllegalArgumentException[failed to find analyzer [search_synonyms]]

Any ideas, I may be missing something but I can't think what.

Upvotes: 4

Views: 7407

Answers (1)

Prabin Meitei
Prabin Meitei

Reputation: 2000

The analyzer element has to be inside your analysis component. Change your index creator as follows:

{
    "settings": {
        "index": {
            "creation_date": "1429175067557",
            "uuid": "Zq6Id8xsRWGofJrNCb7M8w",
            "number_of_replicas": "0",
            "analysis": {
                "filter": {
                    "search_synonym_filter": {
                        "type": "synonym",
                        "synonyms": [
                            "sneakers,pumps"
                        ]
                    }
                },
                "analyzer": {
                    "search_synonyms": {
                        "filter": [
                            "lowercase",
                            "search_synonym_filter"
                        ],
                        "tokenizer": "standard"
                    }
                }
            },
            "number_of_shards": "5",
            "version": {
                "created": "1050099"
            }
        }
    }
}

Upvotes: 9

Related Questions