Loading TOC...

thsr:expand

thsr:expand(
   $query as cts:query,
   $entries as item()*,
   $new-weight as xs:double?,
   $min-weight as xs:double?,
   $filter as node()*
) as cts:query

Summary

Returns a query that searches for all the query strings specified in $query and their synonyms as found in $entries.

Parameters
query A cts:query item from any of the cts:*-query functions ( cts:word-query, cts:and-query, and so on). Thesaurus expansion only occurs on an "unwildcarded" cts:query; it cannot expand "wildcarded" queries.
entries

A sequence of thesaurus entries, can be xml elements or javascript objects.

new-weight A new weight for the relevance ranking. If $new-weight is the empty sequence, then the relevance ranking is inherited from the parent query.
min-weight A minimum weight for the relevance ranking. If $min-weight is not the empty sequence then only queries with weight less than or equal to $min-weight will be expanded. Otherwise, all queiries are expanded.
filter Only return entries containing a node that is deep equal to at least one of the XML nodes specified by this parameter. The filter nodes must be nodes that can be found in a thesaurus entry. For example, <thsr:qualifier>birds</thsr:qualifier>.

Example

  xquery version "1.0-ml";
  import module namespace 
	   thsr="http://marklogic.com/xdmp/thesaurus" 
                           at "/MarkLogic/thesaurus.xqy";

  cts:search(
   doc("/Docs/hamlet.xml")//LINE,
   thsr:expand(
     cts:word-query("weary"), 
     thsr:lookup("/myThsrDocs/thesaurus.xml", 
     "weary"),
     (), 
     (), 
     () )
   )

   (: This query returns all of the lines in Shakespeare's 
      Hamlet that have the word "weary" or any of the 
      synonyms of the word "weary"  :)

  

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.