We have some mapping options that sound interesting but are actually almost useless or dangerous. I propose to remove them:
_type: { index: no }
Not indexing the _type sounds appealing since documentation mentions everything will keep on working, so that should just save space. Except that elasticsearch will internally run a prefix query on the _uid field instead, which is going to be super slow. I think we should remove this option.
_type: { store: yes } and _id: { store: yes }
Storing the type and _id is useless since we already enforce the _uid to be stored, and the _uid contains these informations.
_id: { index: not_analyzed }
The _id field is the same for all documents so we should not need to index, store or doc-value it. (Can be done now thanks to #6073 and #7965)
In general I'm wondering if we shouldn't go further and completely lock down how data is indexed/stored/docvalued for meta fields. There would just remain high-level configuration options such as enabled on the _timestamp mapper or type on _parent.
Relates to #8870
We have some mapping options that sound interesting but are actually almost useless or dangerous. I propose to remove them:
_type: { index: no }Not indexing the
_typesounds appealing since documentation mentions everything will keep on working, so that should just save space. Except that elasticsearch will internally run a prefix query on the_uidfield instead, which is going to be super slow. I think we should remove this option._type: { store: yes }and_id: { store: yes }Storing the type and _id is useless since we already enforce the _uid to be stored, and the _uid contains these informations.
_id: { index: not_analyzed }The
_idfield is the same for all documents so we should not need to index, store or doc-value it. (Can be done now thanks to #6073 and #7965)In general I'm wondering if we shouldn't go further and completely lock down how data is indexed/stored/docvalued for meta fields. There would just remain high-level configuration options such as
enabledon the_timestampmapper ortypeon_parent.Relates to #8870