powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Tsearch2 поиск в нескольких таблицах сразу.
1 сообщений из 1, страница 1 из 1
Tsearch2 поиск в нескольких таблицах сразу.
    #35200124
Фотография ss25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
PostgreSQL  8 . 3 . 0 , compiled by Visual C++ build  1400 

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

т.е. хочу чтобы при поиске (например по автору и названию поиск производился по обеим таблица)
поиск ищет все слова вместе а мне нужно чтоб было совпадение хотябы с одним словом из запроса.

если нет книг с таким названием то в результат долнвы попадать книги автора.
если разделить запросы и в одном искать названия а в другом авторов тто все ок но непонятно как определить автор или название ввел юзер для поиска.


все данные в УТФ-8.
Вот примерно то что я хочу в виде запроса.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT id, ts_headline(name, q, \'StartSel="[b color:FF0000]", StopSel="[/b]"\'), rank
	FROM (SELECT id, name, q, ts_rank_cd(fts, q,  32 ) AS rank
	FROM '.DB_BOOKS.', to_tsquery('Коллизионное & право & США & Мережко') q
	WHERE fts @@@ q) AS foo 
UNION
	SELECT b.id , b.name, ts_rank_cd(a.fts, q,  32 ) AS rank
		FROM '.DB_BOOKS.' b, to_tsquery('Коллизионное & право & США & Мережко') q, '.DB_BOOKS_AUTHORS.' ba, '.DB_AUTHORS.' a
	WHERE a.fts @@@ q AND b.id = ba.book_id AND ba.author_id = a.id';		
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Tsearch2 поиск в нескольких таблицах сразу.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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