Skip to content

Mappings: disallow exotic options on meta fields #8143

@jpountz

Description

@jpountz

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions