Back to top
Documentation SurrealQL Functions Search functions

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.

search::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.

search::highlight(string, string, number) -> 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' ]
	}
]

search::offsets

The search::offsets returns the position of the matching keywords for the predicate reference number.

search::offsets(number) -> 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.