Not very clear on the exact nature of the probable displayName field values here, especially in context of the contains requirement. For example, it could be in different formats - some172name, somename 172, somename172 etc.
As this is a text field, you may apply wildcard query on the displayName field to retrieve most of these value variations.
Second, I don’t think query string query has this options of OR-ing (|) values like mentioned above. FTS has a reasonable set of various query types to express your search criteria and query string query won’t be able to express all the other query combinations. Refer documentation for more details.
You could perhaps rewrite the query something like this.
Nope, FTS currently don’t have the option to return the json object as such as a part of the search result other than explicitly returning the stored field values along with the search results.