JCR allows you to search for nodes that are similar to an existing node.
Similarity is determined by looking up terms that are common to nodes. There are some conditions that must be met for a term to be considered. This is required to limit the number possibly relevant terms.
Only terms with at least 4 characters are considered.
Only terms that occur at least 2 times in the source node are considered.
Only terms that occur in at least 5 nodes are considered.
The similarity functionality requires that the
Highlighting
support
is enabled. Make sure that you have the following
parameter set for the query handler in your
workspace.xml
file.
<param name="support-highlighting" value="true"/>
The functions are called rep:similar()
(in XPath) and similar()
(in
SQL) and have two arguments:
relativePath
: a relative path for a descendant node or for the
current node.
absoluteStringPath
: a string literal that contains the path
to the node for which to find similar nodes.
Relative path is not supported yet.
Examples:
//element(*, nt:resource)[rep:similar(., '/parentnode/node.txt/jcr:content')]
Finds nt:resource
nodes, which are similar to node by the
/parentnode/node.txt/jcr:content
path.