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” понимается
как оператор ИЛИ, а дефис обозначает оператор НЕ;
остальная пунктуация игнорируется.
Это приближает поведение некоторых распространенных поисковых инструментов в Интернете.
websearch_to_tsquery('english', '"толстая крыса" или кошка собака')
→ '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 , нормализуя слова в соответствии с указанной или используемой по умолчанию конфигурацией. Затем результаты объединяются в порядке следования в документе для получения вывода. Информация о позиции генерируется так, как если бы между каждой парой строковых значений существовало одно стоп-слово. (Обратите внимание, что “порядок следования в документе” полей объекта JSON зависит от реализации при вводе jsonb ; обратите внимание на разницу в примерах).
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 , нормализуя слова в соответствии с указанной или используемой по умолчанию конфигурацией. Затем результаты объединяются в порядке следования в документе для получения вывода. Информация о позиции генерируется так, как если бы между каждой парой выбранных элементов существовал один стоп-слово. (Обратите внимание, что “порядок следования в документе” полей объекта JSON зависит от реализации при вводе типа jsonb ).
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
Выбирает только элементы с заданными weights из vector .
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 <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 соответствует запросу. См. Раздел 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
Заменяет все вхождения target
на substitute
внутри query .
См. Раздел 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}
|