array_to_tsvector ( text[] ) → tsvector Преобразует массив текстовых строк в tsvector . Переданные строки используются в виде лексем как есть, без дополнительной обработки. Элементы массива не должны быть пустыми строками или NULL . array_to_tsvector('{fat,cat,rat}'::text[]) → 'cat' 'fat' 'rat'
|
get_current_ts_config ( ) → regconfig Возвращает OID текущей конфигурации текстового поиска по умолчанию (задаваемой параметром default_text_search_config). get_current_ts_config() → english
|
length ( tsvector ) → integer Возвращает число лексем в значении tsvector . length('fat:2,4 cat:3 rat:5A'::tsvector) → 3
|
numnode ( tsquery ) → integer Возвращает число лексем и операторов в запросе tsquery . numnode('(fat & rat) | cat'::tsquery) → 5
|
plainto_tsquery ( [config regconfig , ] query text ) → tsquery Преобразует текст в tsquery , выполняя нормализацию слов согласно конфигурации по умолчанию или указанной явно. Знаки пунктуации во входной строке при этом игнорируются (в данном случае она не определяет операторы запроса). Результирующему запросу будут соответствовать документы, содержащие все слова этого текста, кроме стоп-слов. plainto_tsquery('english', 'The Fat Rats') → 'fat' & 'rat'
|
phraseto_tsquery ( [config regconfig , ] query text ) → tsquery Преобразует текст в tsquery , выполняя нормализацию слов согласно конфигурации по умолчанию или указанной явно. Знаки пунктуации во входной строке при этом игнорируются (в данном случае она не определяет операторы запроса). Результирующему запросу будут соответствовать фразы, содержащие последовательность слов этого текста, кроме стоп-слов. phraseto_tsquery('english', 'The Fat Rats') → 'fat' <-> 'rat'
phraseto_tsquery('english', 'The Cat and Rats') → 'cat' <2> 'rat'
|
websearch_to_tsquery ( [config regconfig , ] query text ) → tsquery Преобразует текст в tsquery , выполняя нормализацию слов согласно конфигурации по умолчанию или указанной явно. Последовательности слов в кавычках преобразуются в проверки фраз. Слово «or» воспринимается как оператор OR (ИЛИ), а символ минуса преобразуется в оператор NOT (НЕ); другие знаки пунктуации игнорируются. Это примерно соответствует поведению ряда распространённых средств поиска в вебе. websearch_to_tsquery('english', '"fat rat" or cat dog') → 'fat' <-> 'rat' | 'cat' & 'dog'
|
querytree ( tsquery ) → text Формирует представление индексируемой части tsquery . Если возвращается пустой результат или просто T , это означает, что запрос не индексируемый. querytree('foo & ! bar'::tsquery) → 'foo'
|
setweight ( vector tsvector , weight "char" ) → tsvector Назначает вес, указанный в аргументе weight , каждому элементу аргумента vector . setweight('fat:2,4 cat:3 rat:5B'::tsvector, 'A') → 'cat':3A 'fat':2A,4A 'rat':5A
|
setweight ( vector tsvector , weight "char" , lexemes text[] ) → tsvector Назначает вес, указанный в аргументе weight , элементам аргумента vector , перечисленным в аргументе lexemes . Строки в lexemes принимаются в виде лексем как есть, без дальнейшей обработки. Строки, не соответствующие ни одной лексеме в vector , игнорируются. setweight('fat:2,4 cat:3 rat:5,6B'::tsvector, 'A', '{cat,rat}') → 'cat':3A 'fat':2,4 'rat':5A,6A
|
strip ( tsvector ) → tsvector Убирает позиции и веса из значения tsvector . strip('fat:2,4 cat:3 rat:5A'::tsvector) → 'cat' 'fat' 'rat'
|
to_tsquery ( [config regconfig , ] query text ) → tsquery Преобразует текст в tsquery , выполняя нормализацию слов согласно конфигурации по умолчанию или указанной явно. Слова должны разделяться операторами tsquery . to_tsquery('english', 'The & Fat & Rats') → 'fat' & 'rat'
|
to_tsvector ( [config regconfig , ] document text ) → tsvector Преобразует текст в tsvector , выполняя нормализацию слов согласно конфигурации по умолчанию или указанной явно. Результат будет включать информацию о позициях слов. to_tsvector('english', 'The Fat Rats') → 'fat':2 'rat':3
|
to_tsvector ( [config regconfig , ] document json ) → tsvector
to_tsvector ( [config regconfig , ] document jsonb ) → tsvector
Преобразует каждое строковое значение в документе JSON в значение tsvector , выполняя нормализацию слов согласно конфигурации по умолчанию или указанной явно. В результате выдаются полученные значения, соединённые вместе в порядке следования в документе. При вычислении выдаваемых позиций слов считается, что между каждой парой строковых значений находится одно стоп-слово. (Учтите, что в случае с jsonb «порядок следования в документе» полей объекта JSON зависит от реализации; это наглядно показано в примере.) to_tsvector('english', '{"aa": "The Fat Rats", "b": "dog"}'::json) → 'dog':5 'fat':2 'rat':3
to_tsvector('english', '{"aa": "The Fat Rats", "b": "dog"}'::jsonb) → 'dog':1 'fat':4 'rat':5
|
json_to_tsvector ( [config regconfig , ] document json , filter jsonb ) → tsvector jsonb_to_tsvector ( [config regconfig , ] document jsonb , filter jsonb ) → tsvector Выбирает из JSON-документа все элементы, соответствующие фильтру filter , и преобразует каждый в значение tsvector , нормализуя их согласно конфигурации по умолчанию или указанной явно. В результате выдаются полученные значения, соединённые вместе в порядке следования в документе. При вычислении выдаваемых позиций слов считается, что между каждой парой строковых значений находится одно стоп-слово. (Учтите, что в случае с jsonb «порядок следования в документе» полей объекта JSON зависит от реализации.) В параметре filter должен передаваться массив jsonb , содержащий ноль или более следующих ключевых слов: "string" (включить все строковые значения), "numeric" (все числовые значения), "boolean" (все логические значения), "key" (все ключи) или "all" (включить всё вышеперечисленное). В качестве особого значения filter принимается простое JSON-значение, содержащее одно из этих ключевых слов. json_to_tsvector('english', '{"a": "The Fat Rats", "b": 123}'::json, '["string", "numeric"]') → '123':5 'fat':2 'rat':3
json_to_tsvector('english', '{"cat": "The Fat Rats", "dog": 123}'::json, '"all"') → '123':9 'cat':1 'dog':7 'fat':4 'rat':5
|
ts_delete ( vector tsvector , lexeme text ) → tsvector Удаляет все вхождения лексемы, задаваемой аргументом lexeme , из значения vector . Строка lexeme принимается в виде лексемы как есть, без дальнейшей обработки. ts_delete('fat:2,4 cat:3 rat:5A'::tsvector, 'fat') → 'cat':3 'rat':5A
|
ts_delete ( vector tsvector , lexemes text[] ) → tsvector
Удаляет все вхождения лексем, переданных в параметре lexemes , из параметра vector . Строки в lexemes принимаются в виде лексем как есть, без дальнейшей обработки. Строки, которые не соответствуют никаким лексемам в vector , игнорируются. ts_delete('fat:2,4 cat:3 rat:5A'::tsvector, ARRAY['fat','rat']) → 'cat':3
|
ts_filter ( vector tsvector , weights "char"[] ) → tsvector Выбирает из значения vector только элементы с весами, перечисленными в массиве weights . ts_filter('fat:2,4 cat:3b,7c rat:5A'::tsvector, '{a,b}') → 'cat':3B 'rat':5A
|
ts_headline ( [config regconfig , ] document text , query tsquery [, options text ] ) → text Выводит в виде выдержек соответствующие поисковому запросу query фрагменты содержимого document , которое должно быть просто текстом, а не значением tsvector . Слова в документе перед поиском нормализуются согласно конфигурации по умолчанию или указанной явно. Использование этой функции рассматривается в Подразделе 12.3.4; также там описываются возможные значения options . ts_headline('The fat cat ate the rat.', 'cat') → The fat <b>cat</b> ate the rat.
|
ts_headline ( [config regconfig , ] document json , query tsquery [, options text ] ) → text
ts_headline ( [config regconfig , ] document jsonb , query tsquery [, options text ] ) → text
Выводит в виде выдержек соответствующие поисковому запросу query вхождения, найденные в строковых значениях внутри JSON-документа document . За подробностями обратитесь к Подразделу 12.3.4. ts_headline('{"cat":"raining cats and dogs"}'::jsonb, 'cat') → {"cat": "raining <b>cats</b> and dogs"}
|
ts_rank ( [weights real[] , ] vector tsvector , query tsquery [, normalization integer ] ) → real Вычисляет оценку, показывающую, в какой степени значение vector соответствует запросу query . За подробностями обратитесь к Подразделу 12.3.3. ts_rank(to_tsvector('raining cats and dogs'), 'cat') → 0.06079271
|
ts_rank_cd ( [weights real[] , ] vector tsvector , query tsquery [, normalization integer ] ) → real Вычисляет по алгоритму расчёта плотности покрытия оценку, показывающую, в какой степени значение vector соответствует запросу query За подробностями обратитесь к Подразделу 12.3.3. ts_rank_cd(to_tsvector('raining cats and dogs'), 'cat') → 0.1
|
ts_rewrite ( query tsquery , target tsquery , substitute tsquery ) → tsquery Заменяет в аргументе query вхождения target значением substitute . За подробностями обратитесь к Подразделу 12.4.2.1. ts_rewrite('a & b'::tsquery, 'a'::tsquery, 'foo|bar'::tsquery) → 'b' & ( 'foo' | 'bar' )
|
ts_rewrite ( query tsquery , select text ) → tsquery
Заменяет фрагменты запроса query , извлекая искомое вхождение и замену для него с помощью команды SELECT . За подробностями обратитесь к Подразделу 12.4.2.1. SELECT ts_rewrite('a & b'::tsquery, 'SELECT t,s FROM aliases') → 'b' & ( 'foo' | 'bar' )
|
tsquery_phrase ( query1 tsquery , query2 tsquery ) → tsquery Конструирует фразовый запрос, который будет находить подряд идущие лексемы, удовлетворяющие запросам query1 и query2 (как делает оператор <-> ). tsquery_phrase(to_tsquery('fat'), to_tsquery('cat')) → 'fat' <-> 'cat'
|
tsquery_phrase ( query1 tsquery , query2 tsquery , distance integer ) → tsquery
Конструирует фразовый запрос, который будет находить вхождения, удовлетворяющие запросам query1 и query2 , на расстоянии ровно в distance лексем друг от друга. tsquery_phrase(to_tsquery('fat'), to_tsquery('cat'), 10) → 'fat' <10> 'cat'
|
tsvector_to_array ( tsvector ) → text[] Преобразует tsvector в массив лексем. tsvector_to_array('fat:2,4 cat:3 rat:5A'::tsvector) → {cat,fat,rat}
|
unnest ( tsvector ) → setof record ( lexeme text , positions smallint[] , weights text ) Разворачивает tsvector в набор строк, по одной лексеме в строке. select * from unnest('cat:3 fat:2,4 rat:5A'::tsvector) →
lexeme | positions | weights
--------+-----------+---------
cat | {3} | {D}
fat | {2,4} | {D,D}
rat | {5} | {A} |