InterMedia 9i... enabling Multi-Language Table support

From: Giovanni Azua <bravegag_at_hotmail.com>
Date: Fri, 11 Oct 2002 10:53:06 +0200
Message-ID: <ao63i7$jks8l$1_at_ID-114658.news.dfncis.de>



Hello all,

I want to create several text CONTEXT indexes in a Multi-Language table using the MULTI_LEXER preference, but to achive this I need a language column for InterMedia to match the different language rows. The problem is that what I actually have is a language_id which points to a master language table containing language codes not in ISO 639-2 (because my boss want it to be like that ;-( ) so I almost don't have a way out but to create a "Calculated Field" in my Multi-Language detail table to generate a virtual column with the ISO 639-2 language code corresponding to the language_id.

q1 - How do I create Calculated/Computed Fields with Oracle? q2 - Is there an alternative way to specify row language appart of having a language column?
q3 - If I convinced my boss to make the language table ISO 639-2 then how could I enable the MULTI_LEXER Multi-Language making an join of both tables? a View?

The way I found in the documentation:

create table globaldoc (
  doc_id number primary key,
  lang varchar2(3),
  text clob
);

begin
  ctx_ddl.create_preference('english_lexer','basic_lexer');

  ctx_ddl.set_attribute('english_lexer','index_themes','yes');
  ctx_ddl.set_attribute('english_lexer','theme_language','english');
  ctx_ddl.create_preference('german_lexer','basic_lexer');
  ctx_ddl.set_attribute('german_lexer','composite','german');
  ctx_ddl.set_attribute('german_lexer','mixed_case','yes');
  ctx_ddl.set_attribute('german_lexer','alternate_spelling','german');
  ctx_ddl.create_preference('japanese_lexer','japanese_vgram_lexer');

  ctx_ddl.create_preference('global_lexer', 'multi_lexer');   ctx_ddl.add_sub_lexer('global_lexer','default','english_lexer');   DDL.ADD_SUB_LEXER procedure. Also assume that the language column is

  • expressed in the standard ISO 639-2 language codes, so add
  • those as alternate values. ctx_ddl.add_sub_lexer('global_lexer','german','german_lexer','ger'); ctx_ddl.add_sub_lexer('global_lexer','japanese','japanese_lexer','jpn'); end;
    • Now create the index globalx, specifying the multi-lexer preference and the
    • language column in the parameter clause as follows: create index globalx on globaldoc(text) indextype is ctxsys.context parameters ('lexer global_lexer language column lang') /

TIA,
Best Regards,
Giovanni Received on Fri Oct 11 2002 - 10:53:06 CEST

Original text of this message