Right now, each query is a number of where statements related to the individual nodes, e.g. "where Asset.name = 'test' and Institution.name = 'test' or Institution.name = 'testtest'".
It has to be changed so that it allows multiple unique FULL where statements like the above, in case the user wants to search for multiple specific assets.
Therefore we also need to add an "and" or "or" function to the FULL statements, e.g.:
e.g. "(where Asset.name = 'test' and Institution.name = 'test' or Institution.name = 'testtest') OR (where Asset.name = 'test2' and Institution.name = 'test2' or Institution.name = 'testtest2')".
How this exactly will look like in the Cypher part of this, I am unsure, and it is TBD.
The object itself hopefully won't need too much work.
Currently it looks like this, as an example:
The query-creator and the cypher statement will need to be completely reworked as well as the way the components are put together in the frontend.
Notes after initial refinement meeting:
Order the queries not unlike Specify, so in property "and/or" clauses.
Instead of choosing Node and property and adding various and/clauses, you should choose a property for the Node, be given one initial "and" clause and then be able to add as many "or" clauses as you like to that specific property.
These will be in their own "()" parameter in the cypher query.
Dropdowns of the nodes/properties could potentially be merged into a layered dropdown so you don't choose Node -> property, but choose a specific property from the beginning and create and/or to that property before moving on to the next.
When creating a new argument for a new property, you only get the choice to add it as "and".
If you want to create another search filter for the same properties, you can add a new "main" query.
Each query can potentially be sent individually in the backend and then joined/merged to be sent back to the frontend, unless we come up with some cypher magic.
So the frontend query blocks need to be re-ordered to be Main Query block -> Property clause block -> and/ors for the property.
The data structure needs to be changed.
Right now, each query is a number of where statements related to the individual nodes, e.g. "where Asset.name = 'test' and Institution.name = 'test' or Institution.name = 'testtest'".
It has to be changed so that it allows multiple unique FULL where statements like the above, in case the user wants to search for multiple specific assets. Therefore we also need to add an "and" or "or" function to the FULL statements, e.g.: e.g. "(where Asset.name = 'test' and Institution.name = 'test' or Institution.name = 'testtest') OR (where Asset.name = 'test2' and Institution.name = 'test2' or Institution.name = 'testtest2')".
How this exactly will look like in the Cypher part of this, I am unsure, and it is TBD. The object itself hopefully won't need too much work. Currently it looks like this, as an example:
And it will likely need to be changed to something like this instead (just an initial thought, nothing is decided):
The query-creator and the cypher statement will need to be completely reworked as well as the way the components are put together in the frontend.
Notes after initial refinement meeting: