Search functions
These functions are used in conjunction with the 'matches' operator to either collect the relevance score or highlight the searched keywords within the content.
Function | Description |
---|---|
search::score() | Returns the relevance score |
search::highlight() | Highlights the matching keywords |
search::offsets() | Returns the position of the matching keywords |
search::score
The search::score
returns the relevance score corresponding to the given 'matches' predicate reference numbers.
API DEFINITIONsearch::score(number) -> number
The following example shows this function, and its output, when used in a RETURN
statement:
SELECT id, title, search::score(1) AS score FROM book
WHERE title @1@ 'rust web'
ORDER BY score DESC;
[
{
id: book:1,
score: 0.9227996468544006,
title: [ 'Rust Web Programming' ],
}
]
search::highlight
The search::highlight
highlights the matching keywords for the predicate reference number.
API DEFINITIONsearch::highlight(string, string, number, [boolean]) -> string | string[]
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';
[
{
id: book:1,
title: [ '<b>Rust</b> <b>Web</b> Programming' ]
}
]
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::offsets
The search::offsets
returns the position of the matching keywords for the predicate reference number.
API DEFINITIONsearch::offsets(number, [boolean]) -> object
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';
[
{
id: book:1,
title: [ 'Rust Web Programming' ],
title_offsets: {
0: [
{ e: 4, s: 0 },
{ e: 8, s: 5 }
]
}
}
]
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.