We use dynamic fields to index fields that we do not want to explicitly define in our schema.
This feature is handy when you want to use a wild card for indexing fields, where you want to index all the fields having a certain pattern. Let's see an example of dynamicField:
<dynamicField name="*_e" type="int" indexed="true" stored="true"/>
As you can see, dynamic fields also have name, type, and options. However, here you can see that the name has a wildcard pattern *_e, which means any field with _e will have the same indexing.