Splunk® Enterprise

Search Manual

Difference between != and NOT

When you want to exclude results from your search you can use the NOT operator or the != field expression. However there is a significant difference in the results that are returned from these two methods.

Suppose you have the following events. As you can see, some events have missing values.

ID Name Color Location
101M3 McIntosh Chestnut Marin Meadows
104F5 Lyra Bay
104M6 Rutherford Dun Placer Pastures
101F2 Rarity Marin Meadows
102M7 Dash Black Calaveras Farms
102M1 Roan
101F6 Chestnut Marin Meadows
104F4 Pinkie Sorrel Placer Pastures
102M8 Spike Grey Calaveras Farms

Searching with !=

If you search with the != expression, every event that has a value in the field, where that value does not match the value you specify, is returned. Events that do not have a value in the field are not included in the results.

For example, if you search for Location!="Calaveras Farms", events that do not have Calaveras Farms as the Location are returned. Events that do not have Location value are not included in the results.

source="Ponies.csv" Location!="Calaveras Farms"

ID Name Color Location
101M3 McIntosh Chestnut Marin Meadows
104M6 Rutherford Dun Placer Pastures
101F2 Rarity Marin Meadows
101F6 Chestnut Marin Meadows
104F4 Pinkie Sorrel Placer Pastures

If you search for a Location that does not exist using the != expression, all of the events that have a Location value are returned.

Searching with NOT

If you search with the NOT operator, every event is returned except the events that contain the value you specify. This includes events that do not have a value in the field.

For example, if you search using NOT Location="Calaveras Farms", every event is returned except the events that contain the value "Calaveras Farms". This includes events that do not have a Location value.

source="Ponies.csv" NOT Location="Calaveras Farms"

ID Name Color Location
101M3 McIntosh Chestnut Marin Meadows
104F5 Lyra Bay
104M6 Rutherford Dun Placer Pastures
101F2 Rarity Marin Meadows
102M1 Roan
101F6 Chestnut Marin Meadows
104F4 Pinkie Sorrel Placer Pastures

If you search for a Location that does not exist using NOT operator, all of the events are returned.

Using != with the regex command

If you use regular expressions in conjunction with != in searches, see regex.

Searching with != or NOT is not efficient

Using the != expression or NOT operator to exclude events from your search results is not an efficient method of filtering events. The execution cost for a search is actually less when you explicitly specify the values that you want to include in the search results. For more tips on search optimization, see Quick tips for optimization.

Last modified on 30 March, 2023
Boolean expressions   Field expressions

This documentation applies to the following versions of Splunk® Enterprise: 7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.0.4, 7.0.5, 7.0.6, 7.0.7, 7.0.8, 7.0.9, 7.0.10, 7.0.11, 7.0.13, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5, 7.1.6, 7.1.7, 7.1.8, 7.1.9, 7.1.10, 7.2.0, 7.2.1, 7.2.2, 7.2.3, 7.2.4, 7.2.5, 7.2.6, 7.2.7, 7.2.8, 7.2.9, 7.2.10, 7.3.0, 7.3.1, 7.3.2, 7.3.3, 7.3.4, 7.3.5, 7.3.6, 7.3.7, 7.3.8, 7.3.9, 8.0.0, 8.0.1, 8.0.2, 8.0.3, 8.0.4, 8.0.5, 8.0.6, 8.0.7, 8.0.8, 8.0.9, 8.0.10, 8.1.0, 8.1.1, 8.1.3, 8.1.4, 8.1.5, 8.1.6, 8.1.7, 8.1.8, 8.1.9, 8.1.11, 8.1.13, 8.2.0, 8.2.1, 8.2.2, 8.2.3, 8.2.4, 8.2.5, 8.2.6, 8.2.7, 8.2.8, 8.2.9, 8.2.10, 8.2.11, 8.2.12, 9.0.0, 9.0.1, 9.0.2, 9.0.3, 9.0.4, 9.0.5, 9.0.6, 9.0.7, 9.0.8, 9.0.9, 9.0.10, 9.1.0, 9.1.1, 9.1.2, 9.1.3, 9.1.4, 9.1.5, 9.1.6, 9.1.7, 9.2.0, 9.2.1, 9.2.2, 9.2.3, 9.2.4, 9.3.0, 9.3.1, 9.3.2, 9.4.0, 8.1.10, 8.1.12, 8.1.14, 8.1.2


Was this topic useful?







You must be logged into splunk.com in order to post comments. Log in now.

Please try to keep this discussion focused on the content covered in this documentation topic. If you have a more general question about Splunk functionality or are experiencing a difficulty with Splunk, consider posting a question to Splunkbase Answers.

0 out of 1000 Characters