Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> interMedia Text using query 
:(
    Опции темы
Sleepy_PIP
Дата 8.2.2005, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 30.6.2004
Где: Moscow

Репутация: нет
Всего: 12



Цитата(igon @ 8.2.2005, 14:41)
Цитата
Но это показывает что interMedia Text можно использовать только на данных, разделителем в которых является пробел

Нет, ни в коем случае!, '/' в данной ситуации тоже рассматривается как разделитель, иначе contains(fdir_names,'ADOBE',1) ничего не найдет, так как фрагмент пути выглядит как '... /ADOBE ...' и token`ом является (как ты считаешь!!!) '/ADOBE'
Если ты создал и использовал при генерации индекса mylex, то текущий список используемых разделителей включает ТРИ символа - '<space>', '<tab>' и '/'
Так что replace(fdir_name,'/'.' /') совершенно лишнее телодвижение, пожалуй, даже вредное: два разделителя подряд - это мусор, который все равно надо обрабатывать.

Общее впечатление от CTX - монстр (надо же - забабахал мне в пользовательскую схему 4 довольно упитанных таблицы!!!), тяжелая артиллерия, пушка, "заточенная" на оптимальный поиск в БОЛЬШИХ и МНОГИХ документах благодаря индексации их текстов. Твои пути - это все-таки, ИМХО, воробьи smile

Цитата
Теперь запрос по contains(fdir_names,'ADOBE',1) выполняется 28 сек, запрос с like - 31 сек.
Времена вообщем-то сравнимые

Пора переходить на wildcard в contains, чтобы прекратить это безобразие с сопоставимостью времен smile

тем не менее находит ...

я пробовал как по рекомендации
begin
ctx_ddl.create_preference('mylex', 'BASIC_LEXER');
ctx_ddl.set_attribute('mylex', 'whitespace', '/');
end;

1-й раз отиндексировал fdir_name (без пробелов перед '/').
Результат никакой - т.е. поиск по contains более 10 мин. , по like - 10-20 сек.

2-й раз я отиндексировал fdir_names (т.е. с пробелами перед '/')
Вот тут время выполнения contains и like сравнялось.

Искал все время ADOB в обеих случаях все находится нормально .....


--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
igon
Дата 9.2.2005, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 30.10.2004

Репутация: 7
Всего: 21



Цитата
тем не менее находит ...

Хм, странно... Подозреваю, что у тебя что-то не в порядке с полем fdir_name.
Попробуй убрать добавленные пробелы в fdir_names и опять сделать поиск. По идее, при этом индекс пересоздавать не нужно - он будет обновляться "на лету", но, возможно, ну оооочень долго.
Или прибей индекс, удали пробелы и пересоздай индекс.
Кстати, какие tokens у тебя наопределялись в dr$site_dir_ctx$i, поле token_text ? Предвижу, что среди них НЕТ содержащих '/' !!!


--------------------
Хотите поговорить об этом?
PM   Вверх
Sleepy_PIP
Дата 9.2.2005, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 30.6.2004
Где: Moscow

Репутация: нет
Всего: 12



Цитата(igon @ 9.2.2005, 01:39)
Цитата
тем не менее находит ...

Хм, странно... Подозреваю, что у тебя что-то не в порядке с полем fdir_name.
Попробуй убрать добавленные пробелы в fdir_names и опять сделать поиск. По идее, при этом индекс пересоздавать не нужно - он будет обновляться "на лету", но, возможно, ну оооочень долго.
Или прибей индекс, удали пробелы и пересоздай индекс.
Кстати, какие tokens у тебя наопределялись в dr$site_dir_ctx$i, поле token_text ? Предвижу, что среди них НЕТ содержащих '/' !!!

сначала посмотерел что лежит если с пробелами.
лежит типа:

"ADOBE",0,605,167424,756,
"ADOBE",0,167717,214262,261,
"ADOBEDIMENSIONS3.0TRYOUTPATCHBIDJAN",0,64981,64981,1,
"ADOBEPHOTOSHOP7",0,71446,71446,1,
"ADOBEPHOTOSHOP7RUS",0,66699,116687,3,
"ADOBEPHOTOSHOP7RUS",0,180157,204396,3,
"ADOBEPREMIER",0,117963,149779,4,
"ADOBEPREMIER",0,201427,201429,2,
"ADOBEPREMIERE",0,35933,164296,20,
"ADOBEPSDRIVERINSTALLER",0,162407,162407,1,
"ADOBEQUESTIONSANDANSWERS",0,29310,156580,14,
"ADOBESTD",0,29059,157233,39,
"ADOBESTD",0,191255,195469,8,

теперь без пробелов:

"ADOBE",0,605,167424,756,
"ADOBE",0,167717,214262,261,
"ADOBEDIMENSIONS3.0TRYOUTPATCHBIDJAN",0,64981,64981,1,
"ADOBEPHOTOSHOP7",0,71446,71446,1,
"ADOBEPHOTOSHOP7RUS",0,66699,116687,3,
"ADOBEPHOTOSHOP7RUS",0,180157,204396,3,
"ADOBEPREMIER",0,117963,149779,4,
"ADOBEPREMIER",0,201427,201429,2,
"ADOBEPREMIERE",0,35933,164296,20,
"ADOBEPSDRIVERINSTALLER",0,162407,162407,1,
"ADOBEQUESTIONSANDANSWERS",0,29310,156580,14,
"ADOBESTD",0,29059,157233,39,
"ADOBESTD",0,191255,195469,8,

выборка
SELECT a.token_text, a.token_type, a.token_first, a.token_last,
a.token_count, a.token_info
FROM dr$site_dir_ctx$i a
where token_text like('ADOBE%')

т.е. токены лежат абсолютно те-же ...

в случае с пробелами перед '/' выборка
SELECT a.token_text, a.token_type, a.token_first, a.token_last,
a.token_count, a.token_info
FROM dr$site_dir_ctx$i a
where token_text like('%ADOBE%')
дает
"ADOBE",0,605,167424,756,
"ADOBEDIMENSIONS3.0TRYOUTPATCHBIDJAN",0,64981,64981,1,
"ADOBEPHOTOSHOP7",0,71446,71446,1,
"ADOBEPHOTOSHOP7RUS",0,66699,116687,3,
"ADOBEPREMIER",0,117963,149779,4,
"ADOBEPREMIERE",0,35933,164296,20,
"ADOBEPSDRIVERINSTALLER",0,162407,162407,1,
"ADOBEQUESTIONSANDANSWERS",0,29310,156580,14,
"ADOBESTD",0,29059,157233,39,
"ADOBE",0,167717,214262,261,
"ADOBEPHOTOSHOP7RUS",0,180157,204396,3,
"ADOBEPREMIER",0,201427,201429,2,
"ADOBESTD",0,191255,195469,8,

т.е. '/' не включается.



--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
igon
Дата 9.2.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 30.10.2004

Репутация: 7
Всего: 21



Угу, "предсказания" сбылись smile
Но для
Цитата
теперь без пробелов:

мне интересней выборка
Цитата
from site_desc sd, site_dir fd, site_files ff
where ff.idsite=sd.idsite and ff.iddir=fd.iddir
and contains(fd.fdir_nameS,'ADOBE',1)>0

т.е. результат вот этого
Цитата
Попробуй убрать добавленные пробелы в fdir_names и опять сделать поиск.


BTW, если при создании индекса ты НЕ БУДЕШЬ использовать mylex, в списке token'ов ПОЯВЯТСЯ содержащие '/'


--------------------
Хотите поговорить об этом?
PM   Вверх
Sleepy_PIP
Дата 9.2.2005, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 30.6.2004
Где: Moscow

Репутация: нет
Всего: 12



Цитата(igon @ 9.2.2005, 11:26)
Угу, "предсказания" сбылись smile
Но для
Цитата
теперь без пробелов:

мне интересней выборка
Цитата
from site_desc sd, site_dir fd, site_files ff
where ff.idsite=sd.idsite and ff.iddir=fd.iddir
and contains(fd.fdir_nameS,'ADOBE',1)>0

т.е. результат вот этого
Цитата
Попробуй убрать добавленные пробелы в fdir_names и опять сделать поиск.


BTW, если при создании индекса ты НЕ БУДЕШЬ использовать mylex, в списке token'ов ПОЯВЯТСЯ содержащие '/'

расскажи как избавитьься теперь от mylex, а?
я буду пробовать ...


--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
igon
Дата 10.2.2005, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 30.10.2004

Репутация: 7
Всего: 21



Цитата
как избавитьься теперь от mylex

при создании (пересоздании) индекса просто его не указываешь в параметрах


--------------------
Хотите поговорить об этом?
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.2107 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.