These functions are used in conjunction with the @@ operator (the ‘matches’ operator) to either collect the relevance score or highlight the searched keywords within the content.
| Function | Description | 
|---|---|
| search::analyze() | Returns the output of a defined search analyzer | search::highlight() | Highlights the matching keywords | 
| search::offsets() | Returns the position of the matching keywords | 
| search::score() | Returns the relevance score | 
The examples below assume the following queries:
search::analyzeThe search_analyze function returns the outut of a defined search analyzer on an input string.
First define the analyzer using the DEFINE ANALYZER statement
Next you can pass the analyzer to the search::analyzefunction. The following example shows this function, and its output, when used in a RETURN statement:
RETURN search::analyze("book_analyzer", "A hands-on guide to developing, packaging, and deploying fully functional Rust web applications");
search::scoreThe search::score function returns the relevance score corresponding to the given ‘matches’ predicate reference numbers.
The following example shows this function, and its output, when used in a RETURN statement:
search::highlightThe search::highlight function highlights the matching keywords for the predicate reference number.
The following example shows this function, and its output, when used in a RETURN statement:
SELECT id, search::highlight('<b>', '</b>', 1) AS title FROM book WHERE title @1@ 'rust web';
The optional Boolean parameter can be set to true to explicitly request that the whole found term be highlighted, or set to false to highlight only the sequence of characters we are looking for. This must be used with an edgengram or ngram filter. The default value is true.
search::offsetsThe search::offsets function returns the position of the matching keywords for the predicate reference number.
The following example shows this function, and its output, when used in a RETURN statement:
SELECT id, title, search::offsets(1) AS title_offsets FROM book WHERE title @1@ 'rust web';
The output returns the start s and end e positions of each matched term found within the original field.
The full-text index is capable of indexing both single strings and arrays of strings. In this example, the key 0 indicates that we’re highlighting the first string within the title field, which contains an array of strings.
The optional Boolean parameter can be set to true to explicitly request that the whole found term be highlighted, or set to false to highlight only the sequence of characters we are looking for. This must be used with an edgengram or ngram filter. The default value is true.