Document toolboxDocument toolbox

Contains - case insensitive (weakhas)

Description

You can apply this operation either as a Filter or Create column operation:

Filter

Returns only those strings that contain a specified value, ignoring case.

Create column

Creates a Boolean column that shows true when the indicated value is present in the given string, ignoring case.

Use the Contains (has, ->) operation if you need to discriminate between uppercase and lowercase letters.

How does it work in the search window?

Select Filter / Create column in the search window toolbar, then select the Contains - case insensitive operation. You need to specify two arguments:

Argument

Data type

Argument

Data type

Value mandatory

string

contains (ignoring case) mandatory

string

If you use the Create column operation, the data type of the values in the new column is boolean (true or false).

You can also use the Is in - case insensitive (weakin) operation to check for the presence of values in a given string, the only difference is the order of the arguments. The Is in - case insensitive operation requires you to first indicate the value(s) to check and then the general string (value IS IN string), and the Contains - case insensitive operation works the other way around (string CONTAINS value).

Example

In the demo.ecommerce.data table, we want to get only the events that contain Mozilla in the userAgent column. To do it, we will apply a Filter using the Contains - case insensitive operation.

The arguments needed for the filter are:

  • Value - userAgent column

  • contains (ignoring case) - Click the pencil icon and enter mozilla or Mozilla. Since this operation is case insensitive, the filter will return the same results with both values.

Click Filter data and you will see the following result:

Click Create column and follow the same steps to add a new Boolean column that shows true when the values in the userAgent column contain mozilla (ignoring case).

How does it work in LINQ?

Use the operator where...  to apply the Filter operation and select... as...  to apply the Create column operation. This is the syntax of the Contains - case insensitive operation:

  • weakhas(string_general, string_value)

Examples

You can copy the following LINQ script and try the above example on the demo.ecommerce.data table:

from demo.ecommerce.data where weakhas(userAgent, "mozilla")

And this is the same example using the Create column operation:

from demo.ecommerce.data select weakhas(userAgent, "mozilla") as has_mozilla_ins

You can also apply this operation using the ->> operator. However, this syntax does not admit more than two arguments, so you can only add a single value to be searched in the selected string field. In the following examples, we want to detect events containing Mozilla in the userAgent column:

from demo.ecommerce.data select userAgent select userAgent ->> "mozilla" as has_mozilla_ins