How to query fields with multiple values in Azure Cognitive Search

you'll need to use a different analyzer which will break the tokens on every ';' just for the category field rather than 'whitespaces'.


You should first ensure your Category data is populated as a Collection(Edm.String) in the index. See Supported Data Types in the official documentation. Each of your semicolon-separated values should be separate values in the collection, in a property called Category (or similar).

You can then filter by string values in the collection. See rules for filtering string collections. Assuming that your index contains a string collection field called Category, you can filter by categories containing Embedded like this:

Category/any(c: c eq 'Embedded')

You can filter by multiple values like this:

Category/any(c: search.in(c, 'Embedded, Automation'))

Start with clean data in your index using proper types for the data you have. This allows you to implement proper facets and you can utilize the syntax made specifically for this. Trying to work around this with wildcards is a hack that should be avoided.