niedziela, 28 czerwca 2009

Oracle Text nie działa (Error DRG-10700: preference does not exist: CTXSYS.DEFAULT_LEXER)

Podczas próby utworzenia pełnotekstowego indeksu dostaję taki błąd:

SQL> CREATE INDEX ap_values_idx ON asset_property(value) INDEXTYPE IS CTXSYS.CONTEXT
2 ;
CREATE INDEX ap_values_idx ON asset_property(value) INDEXTYPE IS CTXSYS.CONTEXT
*
ERROR at line 1:
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-10700: preference does not exist: CTXSYS.DEFAULT_LEXER
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 364
Użytkownik CTXSYS istnieje, Oracle Text się identyfikuje jako:


SQL> select * from ctx_version;

VER_DICT VER_CODE
---------- ----------
10.2.0.1.0 10.2.0.1.0

czyli jakby był (poprawnie) zainstalowany, a jednak czegoś mu brakuje.
Warto zwrócić uwagę na linię preference does not exist: CTXSYS.DEFAULT_LEXER. Nie zainstalowano wymaganych domyślnych ustawień językowych (warto zajrzeć tu). W celu instalacji należy uruchomić plik drdefXX.sql, gdzie XX to wersja językowa z której chcemy skorzystać. W moim wypadku będzie to us. Szukam pliku:
# cd /usr/lib/oracle
# find -name drdef*
./app/oracle/product/10.2.0/server/ctx/admin/defaults/drdefe.sql
./app/oracle/product/10.2.0/server/ctx/admin/defaults/drdefptb.sql
./app/oracle/product/10.2.0/server/ctx/admin/defaults/drdefzhs.sql
./app/oracle/product/10.2.0/server/ctx/admin/defaults/drdefja.sql
./app/oracle/product/10.2.0/server/ctx/admin/defaults/drdefko.sql
./app/oracle/product/10.2.0/server/ctx/admin/defaults/drdefzht.sql
./app/oracle/product/10.2.0/server/ctx/admin/defaults/drdeff.sql
./app/oracle/product/10.2.0/server/ctx/admin/defaults/drdefd.sql
./app/oracle/product/10.2.0/server/ctx/admin/defaults/drdefi.sql
./app/oracle/product/10.2.0/server/ctx/admin/defaults/drdefus.sql

Jest. Spróbujmy wykonać skrypt:
# su - oraclexe
$
sqlplus ctxsys/&ltpassword> @./app/oracle/product/10.2.0/server/ctx/admin/defaults/drdefus.sql
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 28 10:13:46 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Enter password:

Connected to:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

Creating lexer preference...

PL/SQL procedure successfully completed.

Creating wordlist preference...

PL/SQL procedure successfully completed.

Creating stoplist...

PL/SQL procedure successfully completed.


PL/SQL procedure successfully completed.

Creating default policy...

PL/SQL procedure successfully completed.

I mamy działający Oracle Text.

Brak komentarzy:

Prześlij komentarz