Temporal UI Search

Hello, trying to setup my workflows so that they’re searchable by workflowId. For some background, my Temporal cluster runs ElasticSearch. Currently, our workflowIDs are generated as foo-bar-<random nanoid>, and that random suffix ID is to avoid workflow ID collisions on the same foo-bar workflows. Ideally, I’d like to be able to search foo-bar in my WebUI and see the corresponding workflows, but can’t seem to do that. Reading What is the Temporal Visibility feature? | Temporal Documentation seems to indicate that if I separate out the workflow ID to instead be foo-bar <random nanoid>, this should work since:

The = operator works similarly to CONTAINS, helping to find Workflows with Search Attributes containing a specific word. Partial string matching applies only to locating Text Search Attributes.
For example, if you have a custom Search Attribute named Description of Text type with the value “The quick brown fox jumps over the lazy dog”, a search for Description='quick' or Description='fox' successfully returns the Workflow. However, searches for partial words like Description='qui' or Description='laz' won’t return the Workflow. This limitation arises because Elasticsearch’s tokenizer is configured to return complete words as tokens.

However, this still does not seem to work. Is this a known limitation, or am I misunderstanding/doing something wrong here. Thanks!

WorkflowId and RunId search attributes are type KeyWord so “=” and “LIKE” would not work work (they do work on search attributes of type Text for example). You can still search in your case with like:

WorkflowId between "foo-bar-" and "foo-bar-~"

which is basically a “starts with” option available for search attributes of KeyWord type.

Ah, that clears things up. Thank you!