как сохранить синонимы в базе данных ( Oracle Text )

Я использую текст оракула для арабского языка.

Я хочу сохранить список синонимов в таблице базы данных, чтобы индекс домена считывался из этой таблицы, есть идеи?


person أحمد صوالحة    schedule 25.03.2015    source источник
comment
Вы имеете в виду, что хотите создать синонимы на арабском языке, которые ссылаются на оригинальные (возможно, английские?) таблицы?   -  person Jean-François Savard    schedule 25.03.2015
comment
нет, сэр, я хочу хранить каждое арабское слово с его синонимами в таблице, поэтому, когда я ищу свой текст, он искал текст с этими синонимами   -  person أحمد صوالحة    schedule 26.03.2015


Ответы (1)


Я нашел решение:

1- Я загрузил свой список синонимов в таблицу под названием words (содержит все термины и идентификаторы их синонимов) и основную таблицу под названием synset (содержит синонимы)

2- создать тезаурус:

begin
  ctx_thes.create_thesaurus ('MyThesaurus');
end;

3- создайте хранимую процедуру для чтения из моей таблицы [слова] и создайте связь между синонимами:

create or replace procedure CreateSynonyms is
  CURSOR syn_cur is    select s.name_abstract,w.root,w.word_abstract 
  from p words  w , synset s 
  where w.synset_id=s.synset_id and w.root<>s.name_abstract and w.word_abstract<> s.name_abstract
  order by s.synset_id;
  syn_rec syn_cur%rowtype;
BEGIN
OPEN syn_cur;
LOOP
  FETCH syn_cur into syn_rec;
  EXIT WHEN syn_cur%notfound;
  begin
    ctx_thes.create_relation ('MyThesurus', syn_rec.name_abstract, 'syn', syn_rec.word_abstract);
  END LOOP;
END;

4- переписать мой запрос, чтобы выбрать синонимы:

select  /*+ FIRST_ROWS(1)*/  sentence_id,score(1) as sc, isn  
          where contains(PROCESSED_TEXT,'<query>
<textquery>
   search for somthing here
 <progression>
 <seq><rewrite>transform((TOKENS,  "{", "}", ","))</rewrite></seq>
 <seq><rewrite>transform((TOKENS,  "syn(", ",listing)", " , "))</rewrite>/seq>
 </progression>
 </textquery>
 <score datatype="INTEGER" algorithm="COUNT"/></query>',1)>0 

Надеюсь, это поможет кому-то

person أحمد صوالحة    schedule 28.04.2015