Searching not analyzed term name and value in case insensitive manner

Hi @nrmohta,

you can use the keyword tokenizer:

PUT /my_index
{
   "settings": {
      "analysis": {
         "analyzer": {
            "case_insensitive": {
               "tokenizer": "keyword",
               "filter": [
                  "lowercase"
               ]
            }
         }
      }
   },
   "mappings": {
      "my_type": {
         "properties": {
            "name": {
               "type": "string",
               "analyzer": "case_insensitive"
            }
         }
      }
   }
}
PUT /my_index/my_type/1
{
    "name": "Neeraj"
}
GET /my_index/_search?q=name:Neeraj
GET /my_index/_search?q=name:neeraj 

For further details see Elasticsearch: The Definitive Guide.

To your question for the migration path: When you change the analyzer, you have to reindex your old data.

Daniel