Ik ben een stuk code aan het schrijven waarmee je zoekqueries in kunt voeren als:
Je hebt een aantal dingen waar je op kunt zoeken:
- Prioriteit: p1 t/m p4
- Zoekterm: hier als voorbeeld foo en bar, maar kan alles zijn
- Datum: in het formaat yyyy-mm-dd
En dan zijn er een aantal operators:
- & returnt alleen de resultaten waarvan de condities aan beide kanten van de & voldaan worden
- | returnt de gecombineerd (doch unieke) resultaten waarvan de condities aan beide kanten van de | voldaan worden.
- ( en ) om precedence aan te geven net als bij normale wiskunde
In het bovenstaande voorbeeld wordt dus alles gereturnd met prioriteit 2 en alles met prioriteit 1 waarvan de tekst 'foo' of 'bar' bevat.
Ik zit nog een beetje te puzzelen wat de beste manier is om dergelijke expressies te evalueren (in C#), maar ik ben er nog niet over uit. Zijn er bepaalde algoritmen voor om dit aan te pakken?
code:
1
| p2 | p1 & (foo | bar) |
Je hebt een aantal dingen waar je op kunt zoeken:
- Prioriteit: p1 t/m p4
- Zoekterm: hier als voorbeeld foo en bar, maar kan alles zijn
- Datum: in het formaat yyyy-mm-dd
En dan zijn er een aantal operators:
- & returnt alleen de resultaten waarvan de condities aan beide kanten van de & voldaan worden
- | returnt de gecombineerd (doch unieke) resultaten waarvan de condities aan beide kanten van de | voldaan worden.
- ( en ) om precedence aan te geven net als bij normale wiskunde
In het bovenstaande voorbeeld wordt dus alles gereturnd met prioriteit 2 en alles met prioriteit 1 waarvan de tekst 'foo' of 'bar' bevat.
Ik zit nog een beetje te puzzelen wat de beste manier is om dergelijke expressies te evalueren (in C#), maar ik ben er nog niet over uit. Zijn er bepaalde algoritmen voor om dit aan te pakken?
[ Voor 7% gewijzigd door Avalaxy op 10-01-2016 20:48 ]