Search condition could be anything, and it could change the search response's structure. eg. if we use the collapse for the elasticsearch, the returned response could be any structure, I guess that it is difficult to define the graphql for the search response. especially if the index include some dynamic fields, it is not easier to do that in strong type of graphQL.
I think that the response structure is known by the client who send the query or the business logic service, they can define the field for the graphql, they can transform the response from search engine. and the search engine should not havve any business logic, it have no idea about the api consumer , no idean about the business logic, so just return the JSON is fine or include a little fixed field for the node of the relayconnection.