
search.snippet( result as Node, cts-query as schemaElement(cts.query), [options as element(search.transformResults)?] ) as element(search.snippet)
This function extracts matching text from the result node based on options, and returns the matches wrapped in a containing node, with highlights tagged.
| Parameters | |
|---|---|
| result | A node from which to pull matching snippets from. |
| cts-query | A
serialized and annotated cts:query,
typically the result of a call to
search:parse.
|
| options | Options to define the search
grammar and control the search. See description for
$options for
the function search:search. Note that
you cannot specify the apply attribute
on the transform-results option with
search:snippet; to use a different snippetting
function, use
search:search or
search:resolve
instead.
|
const search = require('/MarkLogic/appservices/search/search');
search.snippet(
fn.head(xdmp.unquote('<html xmlns="http://www.w3.org/1999/xhtml">' +
'<head>' +
'<title>Page Title</title>' +
'</head>' +
'<body>' +
'<div>Query terms in this div will be ignored for snippeting.</div>' +
'<p>Text surrounding query terms is highlighted and truncated' +
'according to configuration.</p>' +
'</body>' +
'</html>')).root,
search.parse("term"),
fn.head(xdmp.unquote('<transform-results apply="snippet" xmlns="http://marklogic.com/appservices/search">' +
'<per-match-tokens>30</per-match-tokens>' +
'<max-matches>4</max-matches>' +
'<max-snippet-chars>200</max-snippet-chars>' +
'<preferred-matches>' +
'<element name="p" ns="http://www.w3.org/1999/xhtml"/>' +
'</preferred-matches>' +
'</transform-results>')).root);
// ==>
// <search:snippet xmlns:search="http://marklogic.com/appservices/search">
// <search:match path="/*:html">
// Text surrounding query terms is highlighted and
// truncatedaccording to configuration.
// </search:match>
// </search:snippet>