Elasticsearch Index settings and Mappings: How to create Index mapping and settings (Elasticsearch and Kibana Devtool)

For illustration purpose we generally index document and elasticsearch(ELS) does settings and mappings creation for us. But in production environment we generally first create Index's settings and mapping. In ELS mapping has significance however in ELS 7 mapping will be irrelevant as Type will be decommissioned.
In this post we will see how to create Index settings and mapping in strict mode before creating very first document. Settings node primarily specify number of shards & number of replica. Mapping specify data types of document and analyzers details.

What is strict mode mapping ?
By default elasticsearch allows incremental change in document with new fields other than fields specified initially while setting up mapping node. i.e: "dynamic" : "false". Elasticsearch figure out data type dynamically and add it in mapping node.
In order to restrict specific set of fields in doc specified in mapping, we have to use
"dynamic" : "strict". Below PUT command creates mapping with dynamic = strict (highlighted in yellow)
ELS has two values for dynamic field.
dynamic : false - indexing field will be ignored
dynamic : strict  - indexing field will throw error

Create Index mapping and settings : Below PUT command creates index customers with settings and mapping details. By default ELS setup number of shards = 5, we have overwritten it to 2.
In mapping nodes we have to specify list of fields and analyzer details(fields where we want analysis to be carried out). name is of type text and we instruct to use standard analyzer for it.
Note:- When we have to use custom analyzer for analysis, custom analyzer is declared under settings node.

PUT /customers
{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 1
  },
  "mappings": {
    "online" :{
      "dynamic": "strict",
      "properties":{
        "gender" :{
          "type": "text",
          "analyzer" : "standard"
        },
        "age":{
            "type": "integer"
        },
        "total_spent":{
           "type": "float"
        },
        "is_new":{
           "type" : "boolean"
        },
        "name":{
           "type": "text",
           "analyzer" : "standard"
        },
        "address": {
          "type" : "text",
          "fields":{
            "keyword":{
              "type" : "keyword",
              "ignore_above":  256
            }
          }
        }
      }
    }
  }
}
Show response

Index customers document of type Online: Index document successfully as it followed mapping specs (all document fields are specified in mapping)
PUT /customers/online/176
{  
        "gender" : "male",
        "age":25,
        "total_spent":1298.69,
        "is_new":false,
        "name": "Nikhil",
        "address" : "Windsor prime, Bangalore"
}
Show response

Index customers document with additional fields : Here we will add locale field in document and expect elastic search will not index document successfully, it should throw error - strict_dynamic_mapping_exception. Remember "dynamic" : "strict" will enforce indexing to follow mapping specs.
PUT /customers/online/176
{  
        "gender" : "male",
        "age":25,
        "total_spent":1298.69,
        "is_new":false,
        "name": "Nikhil",
        "address" : "Windsor prime, Bangalore",
        "locale" : "en-US"
}
Show response

How to add restriction on existing index type ? Using _mapping with PUT command we can change dynamic value of a given type.
PUT /customers/_mapping/online
{
    "dynamic": "strict"
}
Show response

33 Comments

  1. Great blog thanks for sharing Instagram and Facebook have provided an amazing place for new brands to grow and flourish. We can find the perfect niche for your brand on the best social media platforms. Marketing through social media brings forth global audience without all these physical boundaries. Analyze and take over the competition with ease with Adhuntt Media’s digital marketing tools and strategies.
    digital marketing company in chennai

    ReplyDelete
  2. Nice blog thanks for sharing You have come to the right place. Karuna Nursery Gardens is the ideal place to begin your journey into landscape gardening. Our specialists have built some of the finest landscape garden in Chennai that too at the best price and amazing service.
    plant nursery in chennai

    ReplyDelete
  3. Excellent blog thanks for sharing Looking for the best place in Chennai to get your cosmetics at wholesale? The Pixies Beauty Shop is the premium wholesale cosmetics shop in Chennai that has all the international brands your salon deserves.
    beauty Shop in Chennai

    ReplyDelete
  4. Amazing post, thanks for publishing!

    ReplyDelete
  5. python interview questions and answers for testers


    Important Python Interview Questions and Answers for freshers and experienced to get your dream job in Python! 101 Python Basic Interview Questions for Freshers

    ReplyDelete
  6. I read your post and got it quite informative. I couldn't find any knowledge on this matter prior to. I would like to thanks for sharing this article here.African Cosmetics Online Shop

    ReplyDelete
  7. Thanks for this great post! I am using your article for my reference. Keep sharing more such valuable articles.
    HTML5 course
    HTML course
    PHP Training in Velachery
    Software Testing Training in Velachery

    ReplyDelete
  8. Great blog.thanks for sharing such a useful information
    Big Data Hadoop Training

    ReplyDelete
  9. Great blog.thanks for sharing such a useful information
    QTP Training

    ReplyDelete
  10. This post is so interactive and informative.keep update more information...
    dot net training in anna nagar
    Dot net training in Chennai

    ReplyDelete
  11. This post is so interactive and informative.keep update more information...
    PHP Training in Tambaram
    PHP Training in Tambaram

    ReplyDelete
  12. Awesome Blog. Thanks for sharing such a worthy information. Keep update like this...
    Why Learn Data Science is Important
    why data science is important in today’s world

    ReplyDelete
  13. This post is so interactive and informative.keep update more information...
    Java Training in Tambaram
    java course in tambaram

    ReplyDelete
Previous Post Next Post