cts:element-words( $element-names as xs:QName*, [$start as xs:string?], [$options as xs:string*], [$query as cts:query?], [$quality-weight as xs:double?], [$forest-ids as xs:unsignedLong*] ) as xs:string*
Returns words from the specified element word lexicon. This function requires an element word lexicon for each of the element specified in the function. If there is not an element word lexicon configured for any of the specified elements, an exception is thrown. The words are returned in collation order.
Parameters | |
---|---|
element-names | One or more element QNames. |
start | A starting word. Returns only this word and any following words from the lexicon. If the parameter is not in the lexicon, then it returns the words beginning with the next word. |
options |
Options. The default is ().
Options include:
|
query |
Only include words in fragments selected by the cts:query .
The words do not need to match the query, but the words must occur
in fragments selected by the query.
The fragments are not filtered to ensure they match the query,
but instead selected in the same manner as
"unfiltered" cts:search
operations. If a string
is entered, the string is treated as a cts:word-query of the
specified string.
|
quality-weight | A document quality weight to use when computing scores. The default is 1.0. |
forest-ids | A sequence of IDs of forests to which the search will be constrained. An empty sequence means to search all forests in the database. The default is (). |
Only one of "ascending" or "descending" may be specified in the options parameter. If neither "ascending" nor "descending" is specified, then the default is "ascending".
Only one of "any", "document", "properties", or "locks" may be specified in the options parameter. If none of "any", "document", "properties", or "locks" are specified and there is a $query parameter, then the default is "document". If there is no $query parameter then the default is "any".
Only one of the "score-logtfidf", "score-logtf", "score-simple", "score-random", or "score-zero" options may be specified in the options parameter. If none of "score-logtfidf", "score-logtf", "score-simple", "score-random", or "score-zero" are specified, then the default is "score-logtfidf".
Only one of the "checked" or "unchecked" options may be specified in the options parameter. If neither "checked" nor "unchecked" are specified, then the default is "checked".
If "collation=URI" is not specified in the options parameter, then the default collation is used. If a lexicon with that collation does not exist, an error is thrown.
If "sample=N" is not specified in the options parameter,
then all included words may be returned. If a $query
parameter
is not present, then "sample=N" has no effect.
If "truncate=N" is not specified in the options parameter,
then words from all fragments selected by the $query
parameter
are included. If a $query
parameter is not present, then
"truncate=N" has no effect.
Only words that can be matched with element-word-query are included. That is, only words present in immediate text node children of the specified element as well as any text node children of child elements defined in the Admin Interface as element-word-query-throughs or phrase-throughs.
When run without a $query parameter and as a user with the admin role, the word lexicon functions return results that might include words from deleted fragments. However, when run as a user with the admin role and without a $query parameter, the word lexicon functions run faster (because they do not need to look up where each word comes from). It is therefore faster to run word lexicon functions as an admin user without passing a $query parameter.
To incrementally fetch a subset of the values returned by this function,
use fn:subsequence
on the output, rather than
the "skip" option. The "skip" option is based on fragments matching the
query
parameter (if present), not on values. A fragment
matched by query might contain multiple values or no values.
The number of fragments skipped does not correspond to the number of
values. Also, the skip is applied to the relevance ordered query matches,
not to the ordered values list.
When using the "skip" option, use the "truncate" option rather than the "limit" option to control the number of matching fragments from which to draw values.
(: an element word lexicon must exist on "animal" or this example throws XDMP-ELEMLXCNNOTFOUND :) cts:element-words(xs:QName("animal"),"aardvark") => ("aardvark","aardvarks","aardwolf",...)
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.