wmash
wmash

Reputation: 4202

Mapping definition for [fields] has unsupported parameters: [analyzer : case_sensitive]

In my search engine, users can select to search case-sensitively or not. If they choose to, the query will search on fields which use a custom case-sensitive analyser. This is my setup:

GET /candidates/_settings

{
    "candidates": {
        "settings": {
            "index": {
                "number_of_shards": "5",
                "provided_name": "candidates",
                "creation_date": "1528210812046",
                "analysis": {
                    "analyzer": {
                        "case_sensitive": {
                            "filter": [
                                "stop",
                                "porter_stem"
                            ],
                            "type": "custom",
                            "tokenizer": "standard"
                        }
                    }
                },
                ...
            }
        }
    }
}

So I have created a custom analyser called case_sensitive taken from this answer. I am trying to define my mapping as follows:

PUT /candidates/_mapping/candidate

{
    "properties": {
        "first_name": {
            "type": "text",
            "fields": {
                "case": { 
                    "type": "text",
                    "analyzer": "case_sensitive"
                }
            }
        }
    }
}

So, when querying, for a case-sensitive match, I can do:

simple_query_string: {
    query: **text to search**,
    fields: [
        "first_name.case"
    ]
}

I am not even getting to the last step as I am getting the error described in the title when I am trying to define the mapping. The full stack trace is in the image below:

enter image description here

I initially thought that my error was similar to this one but I think that issue is only related to using the keyword tokenizer and not the standard one

Upvotes: 1

Views: 1889

Answers (1)

wmash
wmash

Reputation: 4202

In this mapping definition, I was actually trying to adjust the mapping for several different fields and not just first_name. One of these fields has the type long and that is the mapping definition that was throwing the error. When I remove that from the mapping definition, it works as expected. However, I am unsure as to why this fails for this data type?

Upvotes: 1

Related Questions