--- id: fields title: fields Search Operator sidebar_label: fields description: Use the fields operator to specify which fields to display and their order in query results, reducing clutter from irrelevant fields. slug: /help/docs/search/search-query-language/search-operators/fields/ canonical: https://www.sumologic.com/help/docs/search/search-query-language/search-operators/fields/ --- import useBaseUrl from '@docusaurus/useBaseUrl'; The `fields` operator allows you to specify which fields to display and their order in the results of a query. Use a fields operator to reduce the "clutter" of a search output that contains fields that aren't completely relevant to your query. :::info Using the `fields` operator includes both the specified fields and the default fields (from built-in sources and FERs). However, when `fields =` is used, only the specified fields are included in the query results. Make sure to use the `_messagetime` and `_messagecount` for `fields =` operator to function. ::: There are two fields operator modes: * Allowlist - only the fields included are kept in the search output. * Denylist - all the fields except those you specify to be excluded are in the search output. To specify the [order of returned fields](#ordering-fields) you must use the fields operator last, at the end of your query. :::note Fields are not returned in the specified order in [Search Job API](/docs/api/search-job/) and Webhook results. ::: ## Allowlist For allowlist mode, only fields you specify for inclusion are kept in the search output. For example, to strip out every field except for method and status_code, your query would be: ```sumo _sourceCategory=Apache/Access | parse " \"* " as method | parse "\" * " as status_code | fields method, status_code ``` The search results would look like this: Allowlist mode Allowlist queries allow all system internal fields (fields prefixed with an underscore "_") to pass. ## Denylist For denylist mode, all fields except for those you explicitly *remove* remain in the search output. Denylist mode is indicated with a minus sign "-" in a query. For example, to only remove the log_level, module, and process_id fields, your query would be: ```sumo _sourceCategory=*apache* | fields - log_level, module, process_id ``` Denylist queries will also remove internal fields (fields prefixed with an underscore "_") when specified. For example: ```sumo _sourceCategory=*apache* | count by size | fields - _count ``` Make sure that your query does not repeat or duplicate individual fields, or your search query will fail.  ## Non-aggregate vs. Aggregate Query Results The fields displayed in query results are different for non-aggregate and aggregate queries. By default, all non-aggregate query results, which appear in the **Messages** tab, include the # (results list number), Time, and Message field, along with any other fields you have allowlisted in your query. Aggregate query results, which appear in the **Aggregates** tab, include only the fields that you have specified in your query. For example, for this non-aggregate query: ```sumo _sourceCategory=Apache/Access | parse " \"* " as method | parse "\" * " as status_code | fields method, status_code ``` The search results would look like this: Non-aggregate query results While the same query with an added *count by* statement to make it an aggregate query: ```sumo _sourceCategory=Apache/Access | parse " \"* " as method | parse "\" * " as status_code | count by method, status_code | fields status_code, method ``` This would provide the following results: Aggregate query results ## Use a Field Name that Contains Spaces or Special Characters The Sumo Logic search language allows `a-zA-Z\` as valid characters for identifiers for fields. In cases where a field name contains other characters you need to escape the field name by using the `%` character and wrapping the field name in double quotes.  Syntax: `%"field_name"` Here's an example: ```sumo | "Robot" as %"learning robot .33." ``` This creates a field named "learning robot .33." with the value "Robot". ## Ordering fields By default, the fields in non-aggregated results are ordered alphabetically. You can specify a different order by using the fields operator. For example, if you used: ```sumo | fields status_code, method ``` Sumo displays the **status_code** field first, then the **method** field second. In an aggregate result, field and column order follows the requested order of the query. For example, if you used: ```sumo | count by status_code, method ``` Sumo displays the **status_code** field first, and the **method** field second.