clang:user-language-plugin( $library as xs:string?, $lexer as element(lang:lexer)?, $stemmer as element(lang:stemmer)?, [$delegate as xs:boolean?] ) as element(lang:plugin)
This function constructs a user language plugin configuration item, suitable for use with clang:user-language.
Parameters | |
---|---|
library |
The name of the library containing the lexer and stemmer plugins
(if they do not explictly specify a library). Use an empty string
for built-in plugins. Use a library reference of the form
plugin_path/plugin_id for user-defined plugins. Any
library specified within the lexer or stemmer
parameters takes precedence over this value.
|
lexer | A lexer configuration item created using clang:lexer. |
stemmer | A stemmer configuration item created using clang:stemmer. |
delegate | Whether the stemmer should delegate automatically to the base stemmer. Default is true. For more details, see Understanding Stemming Delegation in the Search Developer's Guide. |
cdict:dictionary-write
again.
If no library can be derived from either the library
parameter of this function or the configuration of the supplied lexer
or stemmer, an exception is raised when you try to use the lexer or
stemmer. For example, if you omit library
by setting it
to an empty sequence (XQuery) or null (JavaScript)), and also pass in
a lexer
with no configured library, then an exception is
raised when you try to use the lexer.
(: Create a plugin config item for a custom user-defined lexer and stemmer. :) xquery version "1.0-ml"; import module namespace clang = "http://marklogic.com/xdmp/custom-language" at "/MarkLogic/custom-language.xqy"; let $lexer := clang:lexer("special_lexer", "NFD") let $stemmer := clang:stemmer("special_stemmer", "NFC", ("keep-short-vowels=true")) return clang:user-language-plugin("native/special", $lexer, $stemmer)