You could just set the email address as primary key in the data extension of the journey's entry event. Another possibility (which will be per journey version and
Primary Key - Determines whether the system considers this field to be the primary key of the table. If you select this checkbox, the system requires that the value in this field be unique so it can use this field to uniquely identify a row. If you select this checkbox for more than one column, then the combination of the values in the columns must be unique. If you do not select this checkbox, the system does not require the value in this field to be unique.
(Source: Create a Data Extension)
For completeness sake even if this might not work in your setup as the complete journey however)filter is by subscriber key and not by email address: Another possibility is setting the journey re-entry settings to "No re-entry". However this only works per journey version and filters out by subscriber key.
Select No re-entry if contacts cannot enter the journey again after a previous entry. This setting applies across all versions of a journey. Once you activate the journey, you cannot change this option.
(Source: Journey Settings)
Related documentation: