POLICY_SNIPPET
Displays marked-up keywords in context. The returned text contains either the words that satisfy a word query or the themes that satisfy an ABOUT query. This version of the CTX_DOC.SNIPPET procedure does not require an index.
Syntax
Syntax 1
exec CTX_DOC.POLICY_SNIPPET(
policy_name IN VARCHAR2,
document IN [VARCHAR2|CLOB|BLOB|BFILE],
text_query IN VARCHAR2,
language IN VARCHAR2 default NULL,
format IN VARCHAR2 default NULL,
charset IN VARCHAR2 default NULL,
starttag IN VARCHAR2 DEFAULT '<b>',
endtag IN VARCHAR2 DEFAULT '</b>',
entity_translation IN BOOLEAN DEFAULT TRUE,
separator IN VARCHAR2 DEFAULT '<b>...</b>'
radius IN INTEGER DEFAULT 25,
max_length IN INTEGER DEFAULT 250
)
return varchar2;
Syntax 2
exec CTX_DOC.POLICY_SNIPPET_CLOB_QUERY(
policy_name IN VARCHAR2,
document IN [VARCHAR2|CLOB|BLOB|BFILE],
text_query IN CLOB,
language IN VARCHAR2 default NULL,
format IN VARCHAR2 default NULL,
charset IN VARCHAR2 default NULL,
starttag IN VARCHAR2 DEFAULT '<b>',
endtag IN VARCHAR2 DEFAULT '</b>',
entity_translation IN BOOLEAN DEFAULT TRUE,
separator IN VARCHAR2 DEFAULT '<b>...</b>'
radius IN INTEGER DEFAULT 25,
max_length IN INTEGER DEFAULT 250
)
return varchar2;
policy_name
Specify the name of a policy created with CTX_DDL.CREATE_POLICY.
document
Specify the document in which to search for keywords.
text_query
Specify the original query expression used to retrieve the document. If NULL, no highlights are generated.
If text_query includes wildcards, stemming, fuzzy matching which result in stopwords being returned, POLICY_SNIPPET does not highlight the stopwords.
If text_query contains the threshold operator, the operator is ignored.
language
Specify the language of the document. Use an Oracle Text supported language value as you would in the language column of the base table. See MULTI_LEXER in Oracle Text Indexing Elements.
format
Specify the format of the document. Use an Oracle Text supported format value, either TEXT, BINARY or IGNORE as you would specify in the format column of the base table. For more information, see the format column description in “CREATE INDEX”.
charset
Specify the character set of the document. Use an Oracle Text supported value as you would specify in the charset column of the base table. See “Filter Types”.
starttag
Specify the start tag for marking up the query keywords. Default is <b>.
endtag
Specify the end tag for marking up the query keywords. Default is </b>.
entity_translation
Specify if you want HTML entities to be translated. The default is TRUE, which means the special entities (<, >, and &) are translated into their alternate forms (‘<’, ‘>’, and ‘&’) when output by the procedure. However, special characters in the markup tags generated by CTX_DOC.POLICY_SNIPPET will not be translated.
separator
Specify the string separating different returned fragments. Default is <b>...</b>.
radius
Specify the number of characters to be shown on either side of the hit query in a segment. The character count before the hit query begins on the first character of the first hit query displayed in a segment. Accordingly, the character count after the hit query begins on the last character of the last hit query displayed on a specific segment. Two segments are merged into one if their radii overlap. The displayed number of characters on each side may be modified by +/-10 chars to best match the beginning or ending of a sentence or word.
Special attention is required for the value 0. When specified, the radius is set to automatic and varies between sentences. A best guess of the results is displayed, which attempts to match a full sentence. Note that the length of the radius on each side of the hit query will most likely significantly differ.
The default value is 25.
max_length
Specify the maximum length of the snippet output in characters. This value is currently upper-bounded by the current return type of CTX_DOC.SNIPPET and CTX_DOC.POLICY_SNIPPET (VARCHAR2). Should the output be longer than the return type VARCHAR2, the result will be truncated.
The default value for max_length is 250.
Note: If you set max_length value to a very low value, no snippet may be generated. For example, if max_length is set to 0 or if max_length is lower than the length of query tokens themselves, no snippet may be generated at all.
Limitations
CTX_DOC.POLICY_SNIPPET does not support the use of query templates.
CTX_DOC.POLICY_SNIPPET displays marked-up keywords in context when used with NULL_SECTION_GROUP. However, there are limitations when using this procedure with XML documents. When used with XML_SECTION_GROUP or AUTO_SECTION_GROUP, the XML structure is ignored and user-specified tags are stripped out, which results in parts of surrounding text to be included in the returned snippet.
Related Topics
“SNIPPET”
“MARKUP”