1

Hie,

I am working with an existing Elastic Search index, trying to search for a string in the _id field.

The _id in this index consists of two concatinated strings, and I need to be able to search for the second part of that string. After reading documentation I have found out that I probably should use ngram to search for a substring, but I can't make this work properly.

I have found an example online from someone who was trying to do the same, så I updated my index with the following:

PUT /"myIndex"
{"settings": {
    "number_of_shards": 1, 
    "analysis": {
        "filter": {
            "partial_filter": { 
                "type":     "ngram",
                "min_gram": 2,
                "max_gram": 20
            }
        },
        "analyzer": {
            "partial": {
                "type":      "custom",
                "tokenizer": "standard",
                "filter": [
                    "lowercase",
                    "partial_filter" 
                ]
            }
        }
    }
}}

And then tried to add this:

PUT /"index"/_mapping/type2
{
    "type2": {
        "properties": {
            "_id": {
                "type":     "string",
                "analyzer": "partial"
            }
        }
    }
}

That gives me an exception: "Rejecting mapping update to [bci_report_provider_s_dev-"myIndex"] as the final mapping would have more than 1 type: [type2, bci-report]"

How can I resolve this, and is there another way to be able to de a partial search on the _id field?

Thanks a lot in advance!

Bjørn Olav Berg

  • Seems like this is related to the removal of mapping types in ES v6. Do you know what version created that index? https://stackoverflow.com/questions/50820309/elasticsearch-6-rejecting-mapping-update-as-the-final-mapping-would-have-more-t – Nate Jul 02 '20 at 19:06

0 Answers0