powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / tsvector -> получить список строк
17 сообщений из 17, страница 1 из 1
tsvector -> получить список строк
    #34777385
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть исходная строка 'aa bb cc aa xx'
есть построенный по ней вектор 'aa':1,4 'bb':2 'cc':3 'xx':5

как получить такую выборку:

'aa'
'bb'
'cc'
'xx'
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34777885
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
не совсем понятна цель процедуры
зачем делать из строки tsvector? зачем нужен record set?
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34777900
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izне совсем понятна цель процедуры
зачем делать из строки tsvector? зачем нужен record set?

Для полнотекстового поиска я строю тсвектор.

Я хочу для таблицы создать вспомогательную таблицу, которая будет содержать уникальные слова из основной.

Потому из вектоора хочу выдернуть слова
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34777924
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дошел до такого:

SELECT strip(to_tsvector((parse('aa bb cc xx cc')).token))

в результате правда идут все пробелы и повторяющиеся слова, но хоть так....
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34777998
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
из parse() можно делать выборку по определенному tokid, очевидно, чтобы исключить пробелы. для уникальных слов можно сделать distinct. но все это жуткий misdesign, полнотекстовый поиск не предназначен для такого, понятное дело. я бы делал эту задачу каким-нибудь другим способом.
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34778016
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izиз parse() можно делать выборку по определенному tokid, очевидно, чтобы исключить пробелы. для уникальных слов можно сделать distinct. но все это жуткий misdesign, полнотекстовый поиск не предназначен для такого, понятное дело. я бы делал эту задачу каким-нибудь другим способом.

вполне может быть мисдизайн...., но каким другим?

вот такой запрос будет выбирать все уникальные слова

select distinct * from
(SELECT strip(to_tsvector((parse(xpath)).token)) from xprop ) as t;
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34778042
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как можно token id использовать для выбрасывания пробелов?
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34778638
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
сходу не могу вспомнить, есть ли функция "показать токены данного парсера" в 8.2 (в 8.3 точно есть), но анализ запроса вроде такого:

test=# select * from parse('aaa bbb adsada-adasd, !$# &');
tokid | token
-------+--------------
1 | aaa
12 |
1 | bbb
12 |
2 |
12 |
16 | adsada-adasd
11 | adsada
12 | -
11 | adasd
12 | , !$#
12 | &
(12 rows)

показывает, что вам нужно выбрасывать tokid = 12.

Еще, кстати, в tsearch2 есть функции для анализа состояния GiST индекса -- в частности, можно узнать количество уникальных токенов.
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34778641
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
сорри, при копипасте из psql побились русские буквы, так что пропали токены nlword
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34778816
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, в tsvector уже сидят формы слов обработанные и пригодные для поиска или просто выделенные из текста лексемы?
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34778953
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
это вам нужно документацию хорошенько и с самого начала почитать

test=# select to_tsvector('utf8_russian', 'преклонился');
to_tsvector
------------------
'преклониться':1
(1 row)

tsvector содержит, разумеется, нормализованные в соотв-ии с заданным словарем лексемы.
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34779064
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izэто вам нужно документацию хорошенько и с самого начала почитать

test=# select to_tsvector('utf8_russian', 'преклонился');
to_tsvector
------------------
'преклониться':1
(1 row)

tsvector содержит, разумеется, нормализованные в соотв-ии с заданным словарем лексемы.

Именно оно.
Потому я и хотел взять слова из вектора....Но не пойму как их оттуда вытащить.
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34779078
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh izэто вам нужно документацию хорошенько и с самого начала почитать

test=# select to_tsvector('utf8_russian', 'преклонился');
to_tsvector
------------------
'преклониться':1
(1 row)

tsvector содержит, разумеется, нормализованные в соотв-ии с заданным словарем лексемы.

Именно оно.
Потому я и хотел взять слова из вектора....Но не пойму как их оттуда вытащить.

у меня кстати результат такой
-------------------------------
'преклон':1
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34779248
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
это stemming
у вас плохо настроен tsearch2
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34779256
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izэто stemming
у вас плохо настроен tsearch2

плохо на русский язык или вообще?
Русский пока мне не нужен, надо хотя бы с английским разобраться
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34779280
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
судя по приведенному вами примеру, русский настроен плохо
о других языках судить не могу
...
Рейтинг: 0 / 0
tsvector -> получить список строк
    #34779287
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izсудя по приведенному вами примеру, русский настроен плохо
о других языках судить не могу

спасибо за содействие!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / tsvector -> получить список строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]