Есть вопрос. Требуется помощь. OracleText

student42
Дата: 20.11.2009 16:21:02
Доброго дня, уважаемые коллеги.

Появилась проблемка. Подскажите кто встречался с подобным.

Имеется таблица mmm_test3 в которой есть поле типа BLOB. Индексируем его следующим образом.
CREATE INDEX test_field4_idx
       ON mmm_test3(field4)
       INDEXTYPE IS ctxsys.context;

В таблице имеется 2 записи(привожу значения из BLOB):
1.Иванов
2.Иванченко

Пытаемся произвести поиск:
  SELECT t.*
  FROM mmm_test3 t
 WHERE contains(t.field4,'%ван%',1)>0

результат 0 ROWS..... подскажите в чем проблема?
Заранее благодарю за ответ.
student42
Дата: 20.11.2009 16:49:04
student42
Доброго дня, уважаемые коллеги.

Появилась проблемка. Подскажите кто встречался с подобным.

Имеется таблица mmm_test3 в которой есть поле типа BLOB. Индексируем его следующим образом.
CREATE INDEX test_field4_idx
       ON mmm_test3(field4)
       INDEXTYPE IS ctxsys.context;

В таблице имеется 2 записи(привожу значения из BLOB):
1.Иванов
2.Иванченко

Пытаемся произвести поиск:
  SELECT t.*
  FROM mmm_test3 t
 WHERE contains(t.field4,'%ван%',1)>0

результат 0 ROWS..... подскажите в чем проблема?
Заранее благодарю за ответ.


Уточняю проблему....не ищет именно на русском.
orawish
Дата: 20.11.2009 17:03:56
student42,

1) почему Blob а не Clob?
2) записи вставили, а индекс у вас перестроился?
(т.е. спецификация у него самозарядная либо пинком пнули)
student42
Дата: 20.11.2009 17:27:59
orawish,
1. blob - т.к. туда вкладываем документы (*.doc, *.pdf)
2. Индекс пробовал перестраивать ручками всеравно не помогает
ALTER INDEX test4_idx REBUILD PARAMETERS ('sync');
orawish
Дата: 20.11.2009 17:47:20
student42,

SQL> create table a_tab (b blob, n number);

Таблица создана.

SQL> create index i_atab on a_tab(b) indextype is ctxsys.context
  2  parameters('sync (on commit)');

Индекс создан.

SQL> insert into a_tab values (to_blob(utl_raw.cast_to_raw('AAAA василий CC')),123);

1 строка создана.

SQL> commit;

Фиксация обновлений завершена.

SQL> select n from a_tab where contains(b, '%или%' )>0;

         N
----------
       123
Sergei.Agalakov
Дата: 20.11.2009 17:59:49
Иначе вам не избежать проблем с конвертацией.
student42
Дата: 22.11.2009 13:13:59
Спасибо коллеги за помощь. Все ОК. Все работает. Видимо я не совсем корректно формировал данные для BLOB. Который раз убеждаюсь что это классный форум.
student42
Дата: 22.11.2009 18:29:36
Sergei.Agalakov,

прошу прощения поторопился закрыть тему. А если кодировка базы стоит AL32UTF8 .....contains найдет русские симолы?