Using the MarkLogic 10 Optic API, Is it possible to do wildcarded constraining with op:where()?
In the below table I'm trying to return all rows that start with a "HELLO" value, ONLY in the Table.Message column.
Test.Table.Message
HELLO123
HELLO1234
HELLO12345
HELLO1123123123123
BYE1234
version "1.0-ml";
import module namespace op="http://marklogic.com/optic" at "/MarkLogic/optic.xqy";
op:from-view("Test", "Table")
=>op:where(op:eq(op:view-col('Table', 'Message'), 'HELLO*'))
=>op:result()
Adding an asterisk or % as a trailer to the op:where(op:eq(op:view-col('Table', 'Column'), 'HELLO*')) clause does not return results.
In the optic API guide, there is also an example of a cts:word-query() being used within an op:eq, but this does not work as well: op:where(op:eq(op:view-col('Table', 'Column'), cts:word-query('HELLO')))
One way to do it is with
op:sql-condition()using the SQLLIKEoperator