powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / полнотекстовый поиск по части слова
15 сообщений из 15, страница 1 из 1
полнотекстовый поиск по части слова
    #36957782
vasjon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В базе хранятся названия продуктов ввида:
XAS-5678
DAP-1230

Пытаюсь искать по части названия, т.е. DAP-1, XAS-56:
Код: plaintext
to_tsquery('DAP-1:*') query

Выдает: ERROR: syntax error in tsquery:
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36957831
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasjon, у Вас версия сервера видимо 8.3 или старше.
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36957835
vasjon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёшvasjon, у Вас версия сервера видимо 8.3 или старше.
именно 8.3
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36957851
web_fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasjon, работает

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select to_tsquery('DAP-1:*')
--------------
'dap':* & '-1':*


select version()
--------------
PostgreSQL  8 . 4 . 4  on i686-pc-linux-gnu, compiled by GCC gcc (GCC)  4 . 1 . 2   20080704  (Red Hat  4 . 1 . 2 - 44 ),  32 -bit
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36957859
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasjonЁшvasjon, у Вас версия сервера видимо 8.3 или старше.
именно 8.3поиск по префиксу сделали в 8.4
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36957891
vasjon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поиск по префиксу сделали в 8.4
Правильно ли я понимаю, что если я поставлю 9 версию, то запрос:
Код: plaintext
to_tsquery('DAP-1:*') query
будет выдавать :
DAP-1230
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36957899
vasjon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и
DAP-12
DAP-123
DAP-12302356

будут выводится ?
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36958015
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasjon,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
create table t (v text, ts tsvector);
create index t_ts_indx on t using gin (ts);

insert into t values ('XAS-5678');
insert into t values ('DAP-1230');
insert into t values ('DAP-12');
insert into t values ('DAP-123');
insert into t values ('DAP-12302356');
update t set ts = to_tsvector(v);

seb=# select * from t where ts @@ to_tsquery('DAP-1:*');
      v       |          ts
--------------+-----------------------
 DAP- 1230      | '-1230': 2  'dap': 1 
 DAP- 12        | '-12': 2  'dap': 1 
 DAP- 123       | '-123': 2  'dap': 1 
 DAP- 12302356  | '-12302356': 2  'dap': 1 
( 4  rows)

Time:  1 , 257  ms
seb=# select * from t where ts @@ to_tsquery('XAS:*');
    v     |        ts
----------+-------------------
 XAS- 5678  | '-5678': 2  'xas': 1 
( 1  row)

Time:  0 , 975  ms

seb=# \dF+ russian
Text search configuration "pg_catalog.russian"
Parser: "pg_catalog.default"
      Token      | Dictionaries
-----------------+--------------
 asciihword      | english_stem
 asciiword       | english_stem
 email           | simple
 file            | simple
 float           | simple
 host            | simple
 hword           | russian_stem
 hword_asciipart | english_stem
 hword_numpart   | simple
 hword_part      | russian_stem
 int             | simple
 numhword        | simple
 numword         | simple
 sfloat          | simple
 uint            | simple
 url             | simple
 url_path        | simple
 version         | simple
 word            | russian_stem

seb=# select version();
                                          version
-------------------------------------------------------------------------------------------
 PostgreSQL  9 . 0 . 1  on i686-pc-linux-gnu, compiled by GCC gcc (Debian  4 . 3 . 3 - 3 )  4 . 3 . 3 ,  32 -bit
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36958047
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёш,

а что выдает

to_tsquery('DAP-1:*')

?
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36958058
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha Tyurin,

так же как у web_fox:
Код: plaintext
1.
2.
3.
4.
select to_tsquery('DAP-1:*') ;
    to_tsquery
------------------
 'dap':* & '-1':*
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36958061
vasjon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаймый, Ёш, спасибо за ответ, буду ставить
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36958133
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёш,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Text search configuration "pg_catalog.russian"
Parser: "pg_catalog.default"
      Token      |        Dictionaries
-----------------+-----------------------------
 asciihword      | english_stem
 asciiword       | english_stem
 email           | simple
 file            | simple
 float           | simple
 host            | simple
 hword           | russian_stem
 hword_asciipart | english_stem
 hword_numpart   | simple
 hword_part      | russian_stem
 int             | simple
 numhword        | simple
 numword         | simple
 sfloat          | simple
 uint            | simple
 url             | simple
 url_path        | simple
 version         | simple
 word            | russian_ispell,russian_stem

SELECT to_tsvector('-123 DAP'), to_tsquery('DAP-1:*'), to_tsvector('-1 DAP') @@ to_tsquery('DAP-1:*');
Код: plaintext
1.
2.
   to_tsvector    |    to_tsquery    | ?column?
------------------+------------------+----------
 '-123': 1  'dap': 2  | 'dap':* & '-1':* | t

надо иметь ввиду
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36958136
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha Tyurin,

SELECT to_tsvector('-123 DAP'), to_tsquery('DAP-1:*'), to_tsvector('-123 DAP') @@ to_tsquery('DAP-1:*');

ошибочка, следует так конечно
...
Рейтинг: 0 / 0
полнотекстовый поиск по части слова
    #36958235
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT to_tsvector('DAPasd-123') @@ to_tsquery('DAP-1:*'); -- тоже тру
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
полнотекстовый поиск по части слова
    #38697935
Asmit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток! Столкнулся с проблемой:
to_tsvector('test','деталь') -> детал
to_tsvector('test','детали') -> дета
Использую шаблон snowball, в чем может быть дело?
Хотелось бы, чтоб postgresql распознавал эти слова как одинаковые.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / полнотекстовый поиск по части слова
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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