I will be dropping the fields if i know but consumers are generating some additional fields which we are not aware so in those cases would like to understand if elastic use the storage for non-indexed fields or not.
You can disable dynamic mapping, both at the document and at the object level. Setting the dynamic parameter to false ignores new fields, and strict rejects the document if Elasticsearch encounters an unknown field.
Know unnecessary fields are just fields that exist in your document but you know that you won't use it for search or aggregation so you can drop it before or during ingestion.
For a silly example, suppose you have database of people data and you have a field called species where all the valuse are human, this is an unnecessary field so you can drop it.
Thank you. I just remembered the remove processor to drop the field completely from _source. I'd thought both (drop known fields or drop unknown fields) need Ruby script processor. Thanks!
I pretty new to coding so not sure how to create Ruby script, but even though if we create and implement at logstash or ingestion pipeline layer the ingestion might slow i feel.
I have approach, but it is not going to delete the fields but it will hide the field from _source and storage consumption also less.
As part of template creation disable dynamic mapping and what ever the fields we want to index mention them at properties and include area
This way we will avoid showing non indexed fields at discover tab in kibana
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.