Tamino XQuery User Guide - Software AG Documentation
Tamino XQuery User Guide - Software AG Documentation
Tamino XQuery User Guide - Software AG Documentation
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Text Retrieval<br />
In the context of pattern matching, a word consists of a non-empty sequence of characters: for<br />
example, a wildcard character (default: asterisk) matches zero or more characters in a word, so that<br />
a single "*" represents a single word. If the search string contains more than one word, such as in<br />
the expression tf:containsText($node, "word1 word2") then it is treated as<br />
tf:containsAdjacentText($node, 1, "word1", "word2").<br />
The following sections contain more information about searching with any of these special characters<br />
and how to change the default setting:<br />
■ The Maskcard Character<br />
■ Wildcard Characters<br />
■ The Escapecard Character<br />
■ Customizing Special Character Settings<br />
The Maskcard Character<br />
The maskcard character, which by default is a question mark "?", stands for a single character in<br />
a word. A pattern theat?? thus matches theatre as well as theater, but not theatrical since ??<br />
only match ri and the rest (cal) is not matched.<br />
Consider the following query:<br />
let $text := text{"one two three four five six seven eight nine ten"}<br />
return<br />
(tf:containsText($text, "??"), tf:containsText($text, "t??"), tf:containsText($text, ↩<br />
"two?three"))<br />
The query returns a sequence of three items, each being a Boolean value that indicates whether<br />
the specified pattern matches the contents of the text node in $text. Attempting to match the first<br />
pattern ?? yields "false", since there are no numerals with only two letters. The second pattern t??<br />
matches all three-letter numerals beginning with t, namely two and ten, so "true" is returned. The<br />
last pattern fails again, although the pattern two?three seems to match the value "two three".<br />
However, since pattern matching is always performed on the basis of a word, the match does not<br />
succeed: the string "two three" is treated as two words delimited by the space character in between.<br />
Note: Introducing the question mark as a maskcard character also has the effect that it is no<br />
longer classified as a delimiter character in the default transliteration.<br />
<strong>XQuery</strong> <strong>User</strong> <strong>Guide</strong><br />
99