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

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

Выдает: ERROR: syntax error in tsquery:
...
Рейтинг: 0 / 0
15.11.2010, 17:29:28
    #36957831
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
полнотекстовый поиск по части слова
vasjon, у Вас версия сервера видимо 8.3 или старше.
...
Рейтинг: 0 / 0
15.11.2010, 17:30:18
    #36957835
vasjon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
полнотекстовый поиск по части слова
Ёшvasjon, у Вас версия сервера видимо 8.3 или старше.
именно 8.3
...
Рейтинг: 0 / 0
15.11.2010, 17:33:45
    #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
15.11.2010, 17:36:32
    #36957859
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
полнотекстовый поиск по части слова
vasjonЁшvasjon, у Вас версия сервера видимо 8.3 или старше.
именно 8.3поиск по префиксу сделали в 8.4
...
Рейтинг: 0 / 0
15.11.2010, 17:46:34
    #36957891
vasjon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
полнотекстовый поиск по части слова
поиск по префиксу сделали в 8.4
Правильно ли я понимаю, что если я поставлю 9 версию, то запрос:
Код: plaintext
to_tsquery('DAP-1:*') query
будет выдавать :
DAP-1230
...
Рейтинг: 0 / 0
15.11.2010, 17:48:07
    #36957899
vasjon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
полнотекстовый поиск по части слова
и
DAP-12
DAP-123
DAP-12302356

будут выводится ?
...
Рейтинг: 0 / 0
15.11.2010, 18:24:00
    #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
15.11.2010, 18:35:11
    #36958047
Misha Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
полнотекстовый поиск по части слова
Ёш,

а что выдает

to_tsquery('DAP-1:*')

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

так же как у web_fox:
Код: plaintext
1.
2.
3.
4.
select to_tsquery('DAP-1:*') ;
    to_tsquery
------------------
 'dap':* & '-1':*
...
Рейтинг: 0 / 0
15.11.2010, 18:41:10
    #36958061
vasjon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
полнотекстовый поиск по части слова
Уважаймый, Ёш, спасибо за ответ, буду ставить
...
Рейтинг: 0 / 0
15.11.2010, 19:23:23
    #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
15.11.2010, 19:24:18
    #36958136
Misha Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
полнотекстовый поиск по части слова
Misha Tyurin,

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

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


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