A question about the CONTAINS pipeline function

Hello everybody,

I would like to know if a field contains a part of another field.

For example :

field1: buddy
field2: buddytwo.lalala

-> In this case, it should match

So I made some test with the contains function :

rule "test"
when
    contains(to_string($message.field1), to_string($message.field2))
then    
	set_field("tested", true);
end;

But this doesn’t work : every logs match, even those which don’t have the fields field1 and field2

So I’m asking if we can use $message.fieldname for the substring. Maybe this is not possible ?

Thanks for your help !

You have to check if these fields exist first (via has_field()), otherwise the condition will check if the empty string contains the empty string (which is true) for cases in which the message doesn’t contain the field1 or field2 fields.

1 Like

Exact jochen. It works perfectly now. I should have check this before…

Thanks for your help ! :slight_smile:

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.