9.13. Функции и операторы текстового поиска #
В Таблице 9.42, Таблице 9.43 и Таблице 9.44 собраны все существующие функции и операторы, предназначенные для полнотекстового поиска. Во всех деталях возможности полнотекстового поиска в Postgres Pro описаны в Главе 12.
Таблица 9.42. Операторы текстового поиска
Оператор Описание Пример(ы) |
|---|
Аргумент
|
Переданная текстовая строка, неявно преобразованная функцией
|
Соединяет два значения
|
Вычисляет конъюнкцию двух значений
|
Вычисляет дизъюнкцию двух значений
|
Вычисляет отрицание
|
Конструирует фразовый запрос, которому будут соответствовать документы, содержащие подряд идущие лексемы, удовлетворяющие двум входным запросам.
|
Первый запрос типа
|
Первый запрос типа
|
Помимо этих специализированных операторов, для типов tsvector и tsquery имеются обычные операторы сравнения, показанные в Таблице 9.1. Они не очень полезны для поиска, но позволяют, в частности, создавать индексы по столбцам этих типов.
Таблица 9.43. Функции текстового поиска
Функция Описание Пример(ы) |
|---|
Преобразует массив текстовых строк в
|
Возвращает OID текущей конфигурации текстового поиска по умолчанию (задаваемой параметром default_text_search_config).
|
Возвращает число лексем в значении
|
Возвращает число лексем и операторов в запросе
|
Преобразует текст в
|
Преобразует текст в
|
Преобразует текст в
|
Формирует представление индексируемой части
|
Назначает вес, указанный в аргументе
|
Назначает вес, указанный в аргументе
|
Убирает позиции и веса из значения
|
Преобразует текст в
|
Преобразует текст в
|
Преобразует каждое строковое значение в документе JSON в значение
|
Выбирает из JSON-документа все элементы, соответствующие фильтру
|
Удаляет все вхождения лексемы, задаваемой аргументом
|
Удаляет все вхождения лексем, переданных в параметре
|
Выбирает из значения
|
Выводит в виде выдержек соответствующие поисковому запросу
|
Выводит в виде выдержек соответствующие поисковому запросу
|
Вычисляет оценку, показывающую, в какой степени значение
|
Вычисляет по алгоритму расчёта плотности покрытия оценку, показывающую, в какой степени значение
|
Заменяет в аргументе
|
Заменяет фрагменты запроса
|
Конструирует фразовый запрос, который будет находить подряд идущие лексемы, удовлетворяющие запросам
|
Конструирует фразовый запрос, который будет находить вхождения, удовлетворяющие запросам
|
Преобразует
|
Разворачивает
lexeme | positions | weights
--------+-----------+---------
cat | {3} | {D}
fat | {2,4} | {D,D}
rat | {5} | {A} |
Примечание
Все функции текстового поиска, принимающие необязательный аргумент regconfig, будут использовать конфигурацию, указанную в параметре default_text_search_config, когда этот аргумент опущен.
Функции в Таблице 9.44 перечислены отдельно, так как они не очень полезны в традиционных операциях поиска. Они предназначены в основном для разработки и отладки новых конфигураций текстового поиска.
Таблица 9.44. Функции отладки текстового поиска
Функция Описание Пример(ы) |
|---|
Извлекает из текста
|
Возвращает массив заменяющих лексем, если слово, заданное аргументом
|
Извлекает фрагменты из текста
|
Извлекает фрагменты из текста
|
Возвращает таблицу, описывающую все типы фрагментов, которые может распознать анализатор с указанным именем. За подробностями обратитесь к Подразделу 12.8.2.
|
Возвращает таблицу, описывающую все типы фрагментов, которые может распознать анализатор с указанным OID. За подробностями обратитесь к Подразделу 12.8.2.
|
Выполняет запрос
|
9.13. Text Search Functions and Operators #
Table 9.42, Table 9.43 and Table 9.44 summarize the functions and operators that are provided for full text searching. See Chapter 12 for a detailed explanation of Postgres Pro's text search facility.
Table 9.42. Text Search Operators
Operator Description Example(s) |
|---|
Does
|
Does text string, after implicit invocation of
|
Concatenates two
|
ANDs two
|
ORs two
|
Negates a
|
Constructs a phrase query, which matches if the two input queries match at successive lexemes.
|
Does first
|
Is first
|
In addition to these specialized operators, the usual comparison operators shown in Table 9.1 are available for types tsvector and tsquery. These are not very useful for text searching but allow, for example, unique indexes to be built on columns of these types.
Table 9.43. Text Search Functions
Function Description Example(s) |
|---|
Converts an array of text strings to a
|
Returns the OID of the current default text search configuration (as set by default_text_search_config).
|
Returns the number of lexemes in the
|
Returns the number of lexemes plus operators in the
|
Converts text to a
|
Converts text to a
|
Converts text to a
|
Produces a representation of the indexable portion of a
|
Assigns the specified
|
Assigns the specified
|
Removes positions and weights from the
|
Converts text to a
|
Converts text to a
|
Converts each string value in the JSON document to a
|
Selects each item in the JSON document that is requested by the
|
Removes any occurrence of the given
|
Removes any occurrences of the lexemes in
|
Selects only elements with the given
|
Displays, in an abbreviated form, the match(es) for the
|
Displays, in an abbreviated form, match(es) for the
|
Computes a score showing how well the
|
Computes a score showing how well the
|
Replaces occurrences of
|
Replaces portions of the
|
Constructs a phrase query that searches for matches of
|
Constructs a phrase query that searches for matches of
|
Converts a
|
Expands a
lexeme | positions | weights
--------+-----------+---------
cat | {3} | {D}
fat | {2,4} | {D,D}
rat | {5} | {A}
|
Note
All the text search functions that accept an optional regconfig argument will use the configuration specified by default_text_search_config when that argument is omitted.
The functions in Table 9.44 are listed separately because they are not usually used in everyday text searching operations. They are primarily helpful for development and debugging of new text search configurations.
Table 9.44. Text Search Debugging Functions
Function Description Example(s) |
|---|
Extracts and normalizes tokens from the
|
Returns an array of replacement lexemes if the input token is known to the dictionary, or an empty array if the token is known to the dictionary but it is a stop word, or NULL if it is not a known word. See Section 12.8.3 for details.
|
Extracts tokens from the
|
Extracts tokens from the
|
Returns a table that describes each type of token the named parser can recognize. See Section 12.8.2 for details.
|
Returns a table that describes each type of token a parser specified by OID can recognize. See Section 12.8.2 for details.
|
Executes the
|