[role="xpack"] [testenv="basic"] [[eql-requirements]] == EQL requirements ++++ Requirements ++++ dev::[] EQL is schema-less and works well with most common log formats. [TIP] ==== While no schema is required to use EQL in {es}, we recommend the {ecs-ref}[Elastic Common Schema (ECS)]. The EQL search API is designed to work with core ECS fields by default. ==== [discrete] [[eql-required-fields]] === Required fields In {es}, EQL assumes each document in a data stream or index corresponds to an event. To search a data stream or index using EQL, each document in the data stream or index must contain the following field archetypes: Event category:: A field containing the event classification, such as `process`, `file`, or `network`. This is typically mapped as a <> field. Timestamp:: A field containing the date and/or time the event occurred. This is typically mapped as a <> field. [NOTE] ==== You cannot use a <> field data type or the sub-fields of a `nested` field dataype as the timestamp or event category field. See <>. ====