Custom search fields

I’m having difficulty executing a search on custom fields.
When I execute the following in temporal-web I receive zero results, I expect one result:
WorkflowType = "ChangeName" AND CloseTime = missing AND AND PersonId ="123"

Removing the PersonId predicate yields the one result I expected from the previous query, which has this in its history (trimmed for brevity):

"eventType": "UpsertWorkflowSearchAttributes",
"details": {
  "workflowTaskCompletedEventId": "4",
  "searchAttributes": {
    “PersonId": "\"123\"",
  },

I also tried:
WorkflowType = "ChangeName" AND CloseTime = missing AND AND PersonId =“\”123\””

The setup for this included adding the following to the bottom of development_es.yaml
PersonId: “Keyword”

Temporal started with:
docker-compose -f docker-compose-cas-es.yml up

I start the workflow with the following options:

workflowOptions := client.StartWorkflowOptions{
	ID: workflowId,
	TaskQueue: taskQueue,
	SearchAttributes: map[string]interface{}{
		“PersonId": personId,
	},
}

Using v1.9.2.

What am I missing to have the search work as expected? Any other info I can provide to help troubleshoot?

Thank you.

First of all, you have double AND AND in the query but I guess it is just a typo because Web UI will give you:

3 INVALID_ARGUMENT: Invalid query

in this case.

Did you modify Elasticsearch schema? Adding search attribute to dynamic config is not enough with 1.9.2. You also need to add this field manually to Attr property in the ES schema. You can either modify schema template and recreate the index, or add this field manually. I understand inconvenience and it will be changed with next release.