Elasticsearch mapping
We have seen in the previous chapter how an index can have one or more types and each type has its own mapping.
Mappings are like database schemas that describe the fields or properties that the documents of that type may have. For example, the data type of each field, such as a string, integer, or date, and how these fields should be indexed and stored by Lucene.
One more thing to consider is that unlike a database, you cannot have a field with the same name with different types in the same index; otherwise, you will break doc_values
, and the sorting/searching is also broken. For example, create myIndex
and also index a document with a valid
field that contains an integer value inside the type1
document type:
curl –XPOST localhost:9200/myIndex/type1/1 –d '{"valid":5}'
Now, index another document inside type2
in the same index with the valid
field. This time the valid
field contains a string value:
curl –XPOST localhost/myIndex...