Querying over values without knowing the key

Hello everyone,

I have the following neo4j db structure:

(r:Rule{"name":"VPS","Performance":"{"synonyms": ["Yield", "fast", "quick"], │
│"rules": [{"attribute": "Disc Space GB", "weight": 0}, {"attribute": "│
│Network Speed MBit", "weight": 0}, {"attribute": "Traffic GBytes", "we│
│ight": 0}, {"attribute": "Price monthly", "weight": 0}, {"attribute": │
│"Memory", "weight": 0}, {"attribute": "GHz", "weight": 0}, {"attribute│
│": "vCore", "weight": 0}]}","Default":"{"synonyms": [""], "rules": [{"│
│attribute": "Disc Space GB", "weight": 1}, {"attribute": "Price monthl│
│y", "weight": 1}, {"attribute": "Memory", "weight": 1}]}"} -[h:HAS_RULES]->(f:Family{"name": "VPS"}<-[b:BELONGS_TO]-(p:Product{"name": 'Prod1', formula_Default: 232}.

I want to see if the search matches or contains one of the synonyms to get the value of this rule inside each product (eg., 232 for formula_Default). How can I do this dynamically when I do not know the key beforehand??

That big blob of │ separated data is not very human-friendly. Could you please convert that to JSON or Cypher syntax, and put it in a code-block?