Ik denk dat je dit eenvoudig kunt oplossen door een FULL TEXT INDEX aan te maken op je KWD
kolom. Dan kun je de BEVAT
gebruiken query om naar zinnen te zoeken. De FULL TEXT index zorgt voor de interpunctie en negeert automatisch de komma's.
-- If search text is = Man,Businessman then the query will be
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"Man" AND "Businessman"')
-- If search text is = Man,-Businessman then the query will be
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"Man" AND NOT "Businessman"')
-- If search text is = woman,girl,-Working the query will be
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"woman" AND "girl" AND NOT "working"')
Om de meerdere woorden te zoeken (zoals de mobile phone
in jouw geval) gebruik de geciteerde zinnen:
SELECT AS_ID FROM tbl_main
WHERE CONTAINS(KWD, '"woman" AND "mobile phone"')
Zoals hieronder wordt opgemerkt, zijn de geciteerde zinnen belangrijk bij alle zoekopdrachten om slechte zoekopdrachten te voorkomen in het geval van b.v. wanneer een zoekterm "tablet werkend" is en de KWD-waarde woman,girl,Digital Tablet,working,sitting,online
is
Er is een speciaal geval voor een enkele -
zoekterm. De NOT kan niet worden gebruikt als de eerste term in de CONTAINS. Daarom moet de volgende zoekopdracht worden gebruikt:
-- If search text is = -Working the query will be
SELECT AS_ID FROM tbl_main
WHERE NOT CONTAINS(KWD, '"working"')