egdb3_12_9
.search
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
query_parse_positions(raw_input text)
Parameters
Name
Type
Mode
raw_input
text
IN
Definition
DECLARE curr_phrase TEXT; curr_word TEXT; phrase_pos INT := 0; word_pos INT := 0; pos INT := 0; neg BOOL; ex BOOL; BEGIN FOR curr_phrase IN SELECT x FROM search.query_parse_phrases(raw_input) x LOOP word_pos := 0; FOR curr_word IN SELECT x FROM search.symspell_parse_words(curr_phrase) x LOOP neg := FALSE; ex := FALSE; IF curr_word ~ '^(?:-|\+)' THEN ex := TRUE; IF curr_word LIKE '-%' THEN neg := TRUE; END IF; curr_word := SUBSTRING(curr_word FROM 2); END IF; RETURN QUERY SELECT curr_word, pos, phrase_pos, word_pos, neg, ex; word_pos := word_pos + 1; pos := pos + 1; END LOOP; phrase_pos := phrase_pos + 1; END LOOP; RETURN; END;