205: FOR multi_lexer_rec IN ( SELECT pre_owner, pre_name
206: FROM ctxsys.ctx_preferences
207: WHERE pre_name = l_pre_name )
208: LOOP
209: ad_ctx_ddl.drop_preference (multi_lexer_rec.pre_owner ||'.'|| multi_lexer_rec.pre_name);
210: END LOOP;
211:
212: FOR sub_lexer_rec IN ( SELECT pre_owner, pre_name
213: FROM ctxsys.ctx_preferences
212: FOR sub_lexer_rec IN ( SELECT pre_owner, pre_name
213: FROM ctxsys.ctx_preferences
214: WHERE pre_name LIKE 'ENG_CHANGE_LEXER%' )
215: LOOP
216: ad_ctx_ddl.drop_preference (sub_lexer_rec.pre_owner ||'.'|| sub_lexer_rec.pre_name);
217: END LOOP;
218:
219: l_pre_name := 'ENG_CHANGE_WORDLIST'; -- Bug 4958959
220: FOR wordlist_rec IN ( SELECT pre_owner, pre_name
220: FOR wordlist_rec IN ( SELECT pre_owner, pre_name
221: FROM ctxsys.ctx_preferences
222: WHERE pre_name = l_pre_name )
223: LOOP
224: ad_ctx_ddl.drop_preference (wordlist_rec.pre_owner ||'.'|| wordlist_rec.pre_name);
225: END LOOP;
226:
227: FOR stoplist_rec IN ( SELECT spl_owner, spl_name
228: FROM ctxsys.ctx_stoplists
227: FOR stoplist_rec IN ( SELECT spl_owner, spl_name
228: FROM ctxsys.ctx_stoplists
229: WHERE spl_name = 'ENG_CHANGE_STOPLIST' )
230: LOOP
231: ad_ctx_ddl.Drop_Stoplist (stoplist_rec.spl_owner || '.ENG_CHANGE_STOPLIST');
232: END LOOP;
233:
234: FOR section_group_rec IN ( SELECT sgp_owner, sgp_name
235: FROM ctxsys.ctx_section_groups
234: FOR section_group_rec IN ( SELECT sgp_owner, sgp_name
235: FROM ctxsys.ctx_section_groups
236: WHERE sgp_name = 'ENG_CHANGE_SECTION_GROUP' )
237: LOOP
238: ad_ctx_ddl.Drop_Section_Group (section_group_rec.sgp_owner ||'.'|| section_group_rec.sgp_name);
239: END LOOP;
240:
241: l_pre_name := 'ENG_CHANGE_DATASTORE'; -- Bug 4958959
242: FOR datastore_rec IN ( SELECT pre_owner, pre_name
242: FOR datastore_rec IN ( SELECT pre_owner, pre_name
243: FROM ctxsys.ctx_preferences
244: WHERE pre_name = l_pre_name )
245: LOOP
246: ad_ctx_ddl.drop_preference (datastore_rec.pre_owner ||'.'|| datastore_rec.pre_name);
247: END LOOP;
248:
249: l_pre_name := 'ENG_CHANGE_STORAGE'; -- Bug 4958959
250: FOR storage_rec IN ( SELECT pre_owner, pre_name
250: FOR storage_rec IN ( SELECT pre_owner, pre_name
251: FROM ctxsys.ctx_preferences
252: WHERE pre_name = l_pre_name )
253: LOOP
254: ad_ctx_ddl.drop_preference (storage_rec.pre_owner ||'.'|| storage_rec.pre_name);
255: END LOOP;
256:
257: ------------------------------
258: -- Create STORAGE preference
278: AND table_name = 'ENG_CHANGE_IMTEXT_TL';
279:
280: Log_Line (l_api_name || ': creating STORAGE preference ...');
281:
282: ad_ctx_ddl.create_preference (g_Pref_Owner || '.ENG_CHANGE_STORAGE', 'BASIC_STORAGE');
283:
284: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
285: 'I_TABLE_CLAUSE', tspace_tbl_param);
286:
280: Log_Line (l_api_name || ': creating STORAGE preference ...');
281:
282: ad_ctx_ddl.create_preference (g_Pref_Owner || '.ENG_CHANGE_STORAGE', 'BASIC_STORAGE');
283:
284: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
285: 'I_TABLE_CLAUSE', tspace_tbl_param);
286:
287: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
288: 'K_TABLE_CLAUSE', tspace_tbl_param);
283:
284: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
285: 'I_TABLE_CLAUSE', tspace_tbl_param);
286:
287: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
288: 'K_TABLE_CLAUSE', tspace_tbl_param);
289:
290: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
291: 'R_TABLE_CLAUSE', tspace_tbl_param || ' LOB (data) STORE AS (CACHE)');
286:
287: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
288: 'K_TABLE_CLAUSE', tspace_tbl_param);
289:
290: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
291: 'R_TABLE_CLAUSE', tspace_tbl_param || ' LOB (data) STORE AS (CACHE)');
292:
293: -- Caching the "data" LOB column is the default (at later versions of Oracle Text).
294: -- For index specific STORAGE preference, setting the clause "lob (data) (cache reads)"
294: -- For index specific STORAGE preference, setting the clause "lob (data) (cache reads)"
295: -- should be ensured (the "lob .. store as" clause is only for newly added LOB columns).
296: --alter table dr$prd_ctx_index$r modify lob (data) (cache reads);
297:
298: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
299: 'N_TABLE_CLAUSE', tspace_tbl_param);
300:
301: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
302: 'P_TABLE_CLAUSE', tspace_tbl_param);
297:
298: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
299: 'N_TABLE_CLAUSE', tspace_tbl_param);
300:
301: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
302: 'P_TABLE_CLAUSE', tspace_tbl_param);
303:
304: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
305: 'I_INDEX_CLAUSE', tspace_idx_param || ' COMPRESS 2');
300:
301: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
302: 'P_TABLE_CLAUSE', tspace_tbl_param);
303:
304: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
305: 'I_INDEX_CLAUSE', tspace_idx_param || ' COMPRESS 2');
306:
307: --ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
308: -- 'I_ROWID_INDEX_CLAUSE', tspace_idx_param);
303:
304: ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
305: 'I_INDEX_CLAUSE', tspace_idx_param || ' COMPRESS 2');
306:
307: --ad_ctx_ddl.set_attribute (g_Pref_Owner || '.ENG_CHANGE_STORAGE',
308: -- 'I_ROWID_INDEX_CLAUSE', tspace_idx_param);
309:
310: --------------------------------
311: -- Create DATASTORE preference
312: --------------------------------
313:
314: Log_Line (l_api_name || ': creating DATASTORE preference ...');
315:
316: ad_ctx_ddl.Create_Preference (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'USER_DATASTORE');
317:
318: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'OUTPUT_TYPE', 'CLOB');
319: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'PROCEDURE', 'APPS.ENG_CHANGE_TEXT_CTX_PKG.Get_Change_Text_CLOB'); --remove double quotes for bug 13396450
320:
314: Log_Line (l_api_name || ': creating DATASTORE preference ...');
315:
316: ad_ctx_ddl.Create_Preference (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'USER_DATASTORE');
317:
318: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'OUTPUT_TYPE', 'CLOB');
319: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'PROCEDURE', 'APPS.ENG_CHANGE_TEXT_CTX_PKG.Get_Change_Text_CLOB'); --remove double quotes for bug 13396450
320:
321: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'OUTPUT_TYPE', 'VARCHAR2');
322: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'PROCEDURE', '"ENG_CHANGE_TEXT_CTX_PKG"."Get_Change_Text_VARCHAR2"');
315:
316: ad_ctx_ddl.Create_Preference (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'USER_DATASTORE');
317:
318: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'OUTPUT_TYPE', 'CLOB');
319: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'PROCEDURE', 'APPS.ENG_CHANGE_TEXT_CTX_PKG.Get_Change_Text_CLOB'); --remove double quotes for bug 13396450
320:
321: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'OUTPUT_TYPE', 'VARCHAR2');
322: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'PROCEDURE', '"ENG_CHANGE_TEXT_CTX_PKG"."Get_Change_Text_VARCHAR2"');
323:
317:
318: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'OUTPUT_TYPE', 'CLOB');
319: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'PROCEDURE', 'APPS.ENG_CHANGE_TEXT_CTX_PKG.Get_Change_Text_CLOB'); --remove double quotes for bug 13396450
320:
321: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'OUTPUT_TYPE', 'VARCHAR2');
322: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'PROCEDURE', '"ENG_CHANGE_TEXT_CTX_PKG"."Get_Change_Text_VARCHAR2"');
323:
324: ------------------------------------
325: -- Create SECTION GROUP preference
318: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'OUTPUT_TYPE', 'CLOB');
319: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'PROCEDURE', 'APPS.ENG_CHANGE_TEXT_CTX_PKG.Get_Change_Text_CLOB'); --remove double quotes for bug 13396450
320:
321: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'OUTPUT_TYPE', 'VARCHAR2');
322: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_DATASTORE', 'PROCEDURE', '"ENG_CHANGE_TEXT_CTX_PKG"."Get_Change_Text_VARCHAR2"');
323:
324: ------------------------------------
325: -- Create SECTION GROUP preference
326: ------------------------------------
326: ------------------------------------
327:
328: --Log_Line (l_api_name || ': creating SECTION_GROUP preference ...');
329:
330: --ad_ctx_ddl.Create_Section_Group (g_Pref_Owner || '.ENG_CHANGE_STOPLIST', 'AUTO_SECTION_GROUP');
331:
332: -------------------------------
333: -- Create STOPLIST preference
334: -------------------------------
335:
336: Log_Line (l_api_name || ': creating STOPLIST preference ...');
337:
338: -- This should create stoplist equivalent to CTXSYS.EMPTY_STOPLIST
339: ad_ctx_ddl.Create_Stoplist (g_Pref_Owner || '.ENG_CHANGE_STOPLIST');
340:
341: -------------------------------
342: -- Create WORDLIST preference
343: -------------------------------
343: -------------------------------
344:
345: Log_Line (l_api_name || ': creating WORDLIST preference ...');
346:
347: ad_ctx_ddl.Create_Preference (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'BASIC_WORDLIST');
348:
349: -- Enable prefix indexing to improve performance for wildcard searches
350: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_INDEX', 'TRUE');
351: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MIN_LENGTH', 2);
346:
347: ad_ctx_ddl.Create_Preference (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'BASIC_WORDLIST');
348:
349: -- Enable prefix indexing to improve performance for wildcard searches
350: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_INDEX', 'TRUE');
351: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MIN_LENGTH', 2);
352: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MIN', 2);
353: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MAX_LENGTH', 32);
354: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MAX', 32);
347: ad_ctx_ddl.Create_Preference (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'BASIC_WORDLIST');
348:
349: -- Enable prefix indexing to improve performance for wildcard searches
350: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_INDEX', 'TRUE');
351: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MIN_LENGTH', 2);
352: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MIN', 2);
353: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MAX_LENGTH', 32);
354: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MAX', 32);
355: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'WILDCARD_MAXTERMS', 5000);
348:
349: -- Enable prefix indexing to improve performance for wildcard searches
350: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_INDEX', 'TRUE');
351: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MIN_LENGTH', 2);
352: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MIN', 2);
353: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MAX_LENGTH', 32);
354: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MAX', 32);
355: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'WILDCARD_MAXTERMS', 5000);
356:
349: -- Enable prefix indexing to improve performance for wildcard searches
350: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_INDEX', 'TRUE');
351: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MIN_LENGTH', 2);
352: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MIN', 2);
353: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MAX_LENGTH', 32);
354: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MAX', 32);
355: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'WILDCARD_MAXTERMS', 5000);
356:
357: -- This option should be TRUE only when left-truncated wildcard searching is expected
350: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_INDEX', 'TRUE');
351: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MIN_LENGTH', 2);
352: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MIN', 2);
353: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MAX_LENGTH', 32);
354: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MAX', 32);
355: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'WILDCARD_MAXTERMS', 5000);
356:
357: -- This option should be TRUE only when left-truncated wildcard searching is expected
358: -- to be frequent and needs to be fast (at the cost of increased index time and space).
351: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MIN_LENGTH', 2);
352: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MIN', 2);
353: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_MAX_LENGTH', 32);
354: --ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'PREFIX_LENGTH_MAX', 32);
355: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'WILDCARD_MAXTERMS', 5000);
356:
357: -- This option should be TRUE only when left-truncated wildcard searching is expected
358: -- to be frequent and needs to be fast (at the cost of increased index time and space).
359: --
356:
357: -- This option should be TRUE only when left-truncated wildcard searching is expected
358: -- to be frequent and needs to be fast (at the cost of increased index time and space).
359: --
360: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'SUBSTRING_INDEX', 'FALSE');
361:
362: -- WORDLIST attribute defaults: STEMMER: 'ENGLISH'; FUZZY_MATCH: 'GENERIC'
363: -- Use automatic language detection for stemming and fuzzy matching
364: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'STEMMER', 'AUTO');
360: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'SUBSTRING_INDEX', 'FALSE');
361:
362: -- WORDLIST attribute defaults: STEMMER: 'ENGLISH'; FUZZY_MATCH: 'GENERIC'
363: -- Use automatic language detection for stemming and fuzzy matching
364: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'STEMMER', 'AUTO');
365: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_MATCH', 'AUTO');
366: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_SCORE', 40);
367: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_NUMRESULTS', 120);
368:
361:
362: -- WORDLIST attribute defaults: STEMMER: 'ENGLISH'; FUZZY_MATCH: 'GENERIC'
363: -- Use automatic language detection for stemming and fuzzy matching
364: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'STEMMER', 'AUTO');
365: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_MATCH', 'AUTO');
366: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_SCORE', 40);
367: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_NUMRESULTS', 120);
368:
369: -----------------------------------------------
362: -- WORDLIST attribute defaults: STEMMER: 'ENGLISH'; FUZZY_MATCH: 'GENERIC'
363: -- Use automatic language detection for stemming and fuzzy matching
364: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'STEMMER', 'AUTO');
365: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_MATCH', 'AUTO');
366: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_SCORE', 40);
367: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_NUMRESULTS', 120);
368:
369: -----------------------------------------------
370: -- Create language-specific LEXER preferences
363: -- Use automatic language detection for stemming and fuzzy matching
364: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'STEMMER', 'AUTO');
365: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_MATCH', 'AUTO');
366: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_SCORE', 40);
367: ad_ctx_ddl.Set_Attribute (g_Pref_Owner || '.ENG_CHANGE_WORDLIST', 'FUZZY_NUMRESULTS', 120);
368:
369: -----------------------------------------------
370: -- Create language-specific LEXER preferences
371: -----------------------------------------------
379: IF ( Lang_Code_List(i) = 'JA' ) THEN
380:
381: -- Use JAPANESE_LEXER if db charset is UTF8, JA16SJIS, or JA16EUC.
382: IF ( ENG_CHANGE_TEXT_UTIL.get_DB_Version_Num >= 9.0 ) THEN
383: ad_ctx_ddl.Create_Preference (Lexer_Name, 'JAPANESE_LEXER');
384: ELSE
385: ad_ctx_ddl.Create_Preference (Lexer_Name, 'JAPANESE_VGRAM_LEXER');
386: END IF;
387:
381: -- Use JAPANESE_LEXER if db charset is UTF8, JA16SJIS, or JA16EUC.
382: IF ( ENG_CHANGE_TEXT_UTIL.get_DB_Version_Num >= 9.0 ) THEN
383: ad_ctx_ddl.Create_Preference (Lexer_Name, 'JAPANESE_LEXER');
384: ELSE
385: ad_ctx_ddl.Create_Preference (Lexer_Name, 'JAPANESE_VGRAM_LEXER');
386: END IF;
387:
388: ELSIF ( Lang_Code_List(i) = 'KO' ) THEN
389:
388: ELSIF ( Lang_Code_List(i) = 'KO' ) THEN
389:
390: -- Use KOREAN_MORPH_LEXER if db charset is UTF8 or KO16KSC5601.
391: IF ( ENG_CHANGE_TEXT_UTIL.get_DB_Version_Num >= 9.0 ) THEN
392: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_MORPH_LEXER');
393: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB_ADJECTIVE', 'TRUE');
394: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONE_CHAR_WORD', 'TRUE');
395: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
396: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'NGRAM');
389:
390: -- Use KOREAN_MORPH_LEXER if db charset is UTF8 or KO16KSC5601.
391: IF ( ENG_CHANGE_TEXT_UTIL.get_DB_Version_Num >= 9.0 ) THEN
392: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_MORPH_LEXER');
393: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB_ADJECTIVE', 'TRUE');
394: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONE_CHAR_WORD', 'TRUE');
395: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
396: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'NGRAM');
397: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
390: -- Use KOREAN_MORPH_LEXER if db charset is UTF8 or KO16KSC5601.
391: IF ( ENG_CHANGE_TEXT_UTIL.get_DB_Version_Num >= 9.0 ) THEN
392: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_MORPH_LEXER');
393: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB_ADJECTIVE', 'TRUE');
394: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONE_CHAR_WORD', 'TRUE');
395: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
396: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'NGRAM');
397: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
398: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'HANJA', 'FALSE');
391: IF ( ENG_CHANGE_TEXT_UTIL.get_DB_Version_Num >= 9.0 ) THEN
392: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_MORPH_LEXER');
393: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB_ADJECTIVE', 'TRUE');
394: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONE_CHAR_WORD', 'TRUE');
395: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
396: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'NGRAM');
397: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
398: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'HANJA', 'FALSE');
399: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'LONG_WORD', 'TRUE');
392: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_MORPH_LEXER');
393: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB_ADJECTIVE', 'TRUE');
394: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONE_CHAR_WORD', 'TRUE');
395: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
396: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'NGRAM');
397: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
398: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'HANJA', 'FALSE');
399: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'LONG_WORD', 'TRUE');
400: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'JAPANESE', 'FALSE');
393: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB_ADJECTIVE', 'TRUE');
394: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONE_CHAR_WORD', 'TRUE');
395: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
396: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'NGRAM');
397: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
398: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'HANJA', 'FALSE');
399: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'LONG_WORD', 'TRUE');
400: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'JAPANESE', 'FALSE');
401: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ENGLISH', 'TRUE');
394: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONE_CHAR_WORD', 'TRUE');
395: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
396: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'NGRAM');
397: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
398: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'HANJA', 'FALSE');
399: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'LONG_WORD', 'TRUE');
400: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'JAPANESE', 'FALSE');
401: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ENGLISH', 'TRUE');
402: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TO_UPPER', 'TRUE');
395: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
396: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'NGRAM');
397: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
398: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'HANJA', 'FALSE');
399: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'LONG_WORD', 'TRUE');
400: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'JAPANESE', 'FALSE');
401: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ENGLISH', 'TRUE');
402: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TO_UPPER', 'TRUE');
403: ELSE
396: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'NGRAM');
397: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
398: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'HANJA', 'FALSE');
399: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'LONG_WORD', 'TRUE');
400: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'JAPANESE', 'FALSE');
401: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ENGLISH', 'TRUE');
402: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TO_UPPER', 'TRUE');
403: ELSE
404: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_LEXER');
397: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
398: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'HANJA', 'FALSE');
399: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'LONG_WORD', 'TRUE');
400: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'JAPANESE', 'FALSE');
401: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ENGLISH', 'TRUE');
402: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TO_UPPER', 'TRUE');
403: ELSE
404: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_LEXER');
405: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB', 'TRUE');
398: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'HANJA', 'FALSE');
399: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'LONG_WORD', 'TRUE');
400: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'JAPANESE', 'FALSE');
401: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ENGLISH', 'TRUE');
402: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TO_UPPER', 'TRUE');
403: ELSE
404: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_LEXER');
405: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB', 'TRUE');
406: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADJECTIVE', 'TRUE');
400: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'JAPANESE', 'FALSE');
401: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ENGLISH', 'TRUE');
402: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TO_UPPER', 'TRUE');
403: ELSE
404: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_LEXER');
405: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB', 'TRUE');
406: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADJECTIVE', 'TRUE');
407: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADVERB', 'TRUE');
408: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONECHAR', 'TRUE');
401: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ENGLISH', 'TRUE');
402: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TO_UPPER', 'TRUE');
403: ELSE
404: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_LEXER');
405: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB', 'TRUE');
406: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADJECTIVE', 'TRUE');
407: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADVERB', 'TRUE');
408: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONECHAR', 'TRUE');
409: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
402: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TO_UPPER', 'TRUE');
403: ELSE
404: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_LEXER');
405: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB', 'TRUE');
406: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADJECTIVE', 'TRUE');
407: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADVERB', 'TRUE');
408: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONECHAR', 'TRUE');
409: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
410: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'TRUE');
403: ELSE
404: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_LEXER');
405: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB', 'TRUE');
406: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADJECTIVE', 'TRUE');
407: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADVERB', 'TRUE');
408: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONECHAR', 'TRUE');
409: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
410: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'TRUE');
411: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
404: ad_ctx_ddl.Create_Preference (Lexer_Name, 'KOREAN_LEXER');
405: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB', 'TRUE');
406: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADJECTIVE', 'TRUE');
407: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADVERB', 'TRUE');
408: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONECHAR', 'TRUE');
409: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
410: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'TRUE');
411: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
412: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TOHANGEUL', 'TRUE');
405: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'VERB', 'TRUE');
406: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADJECTIVE', 'TRUE');
407: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADVERB', 'TRUE');
408: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONECHAR', 'TRUE');
409: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
410: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'TRUE');
411: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
412: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TOHANGEUL', 'TRUE');
413: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TOUPPER', 'TRUE');
406: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADJECTIVE', 'TRUE');
407: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADVERB', 'TRUE');
408: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONECHAR', 'TRUE');
409: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
410: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'TRUE');
411: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
412: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TOHANGEUL', 'TRUE');
413: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TOUPPER', 'TRUE');
414: END IF;
407: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ADVERB', 'TRUE');
408: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONECHAR', 'TRUE');
409: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
410: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'TRUE');
411: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
412: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TOHANGEUL', 'TRUE');
413: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TOUPPER', 'TRUE');
414: END IF;
415:
408: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ONECHAR', 'TRUE');
409: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
410: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'TRUE');
411: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
412: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TOHANGEUL', 'TRUE');
413: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TOUPPER', 'TRUE');
414: END IF;
415:
416: ELSIF ( Lang_Code_List(i) IN ('ZHS', 'ZHT') ) THEN
409: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMBER', 'TRUE');
410: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'TRUE');
411: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MORPHEME', 'TRUE');
412: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TOHANGEUL', 'TRUE');
413: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'TOUPPER', 'TRUE');
414: END IF;
415:
416: ELSIF ( Lang_Code_List(i) IN ('ZHS', 'ZHT') ) THEN
417:
415:
416: ELSIF ( Lang_Code_List(i) IN ('ZHS', 'ZHT') ) THEN
417:
418: IF ( ENG_CHANGE_TEXT_UTIL.get_DB_Version_Num >= 9.2 ) THEN
419: ad_ctx_ddl.Create_Preference (Lexer_Name, 'CHINESE_LEXER');
420: ELSE
421: ad_ctx_ddl.Create_Preference (Lexer_Name, 'CHINESE_VGRAM_LEXER');
422: END IF;
423:
417:
418: IF ( ENG_CHANGE_TEXT_UTIL.get_DB_Version_Num >= 9.2 ) THEN
419: ad_ctx_ddl.Create_Preference (Lexer_Name, 'CHINESE_LEXER');
420: ELSE
421: ad_ctx_ddl.Create_Preference (Lexer_Name, 'CHINESE_VGRAM_LEXER');
422: END IF;
423:
424: ELSE
425: -- All other languages use basic lexer.
423:
424: ELSE
425: -- All other languages use basic lexer.
426:
427: ad_ctx_ddl.Create_Preference (Lexer_Name, 'BASIC_LEXER');
428:
429: -- The following language-independent attributes are
430: -- common to the BASIC_LEXER preference object.
431:
428:
429: -- The following language-independent attributes are
430: -- common to the BASIC_LEXER preference object.
431:
432: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_TEXT', 'YES');
433: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_THEMES', 'NO');
434:
435: -- For printjoin characters include all possible flex segment separators
436: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'PRINTJOINS', '-_*~^+.$#@:|&');
429: -- The following language-independent attributes are
430: -- common to the BASIC_LEXER preference object.
431:
432: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_TEXT', 'YES');
433: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_THEMES', 'NO');
434:
435: -- For printjoin characters include all possible flex segment separators
436: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'PRINTJOINS', '-_*~^+.$#@:|&');
437: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'CONTINUATION', '-\');
432: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_TEXT', 'YES');
433: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_THEMES', 'NO');
434:
435: -- For printjoin characters include all possible flex segment separators
436: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'PRINTJOINS', '-_*~^+.$#@:|&');
437: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'CONTINUATION', '-\');
438: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'PUNCTUATIONS', '.?!');
439:
440: -- The default values for numjoin and numgroup are determined by
433: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_THEMES', 'NO');
434:
435: -- For printjoin characters include all possible flex segment separators
436: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'PRINTJOINS', '-_*~^+.$#@:|&');
437: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'CONTINUATION', '-\');
438: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'PUNCTUATIONS', '.?!');
439:
440: -- The default values for numjoin and numgroup are determined by
441: -- the NLS initialization parameters that are specified for the database.
434:
435: -- For printjoin characters include all possible flex segment separators
436: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'PRINTJOINS', '-_*~^+.$#@:|&');
437: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'CONTINUATION', '-\');
438: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'PUNCTUATIONS', '.?!');
439:
440: -- The default values for numjoin and numgroup are determined by
441: -- the NLS initialization parameters that are specified for the database.
442: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMGROUP', ',');
438: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'PUNCTUATIONS', '.?!');
439:
440: -- The default values for numjoin and numgroup are determined by
441: -- the NLS initialization parameters that are specified for the database.
442: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMGROUP', ',');
443: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMJOIN', '.');
444:
445: -- Stem indexing stems tokens at indexing time to a single base form in addition
446: -- to the normal forms. This enables better query performance for stem ($) queries.
439:
440: -- The default values for numjoin and numgroup are determined by
441: -- the NLS initialization parameters that are specified for the database.
442: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMGROUP', ',');
443: --ad_ctx_ddl.Set_Attribute (Lexer_Name, 'NUMJOIN', '.');
444:
445: -- Stem indexing stems tokens at indexing time to a single base form in addition
446: -- to the normal forms. This enables better query performance for stem ($) queries.
447:
449: -- This would not affect stem expansion (with $) at query time.
450: --
451: --IF ( ENG_CHANGE_TEXT_UTIL.get_DB_Version_Num >= 9.2 ) THEN
452: -- IF ( Lang_Code_List(i) IN ('US', 'GB') ) THEN
453: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'ENGLISH');
454: -- ELSIF ( Lang_Code_List(i) = 'NL' ) THEN
455: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'DUTCH');
456: -- ELSIF ( Lang_Code_List(i) = 'D' ) THEN
457: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'GERMAN');
451: --IF ( ENG_CHANGE_TEXT_UTIL.get_DB_Version_Num >= 9.2 ) THEN
452: -- IF ( Lang_Code_List(i) IN ('US', 'GB') ) THEN
453: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'ENGLISH');
454: -- ELSIF ( Lang_Code_List(i) = 'NL' ) THEN
455: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'DUTCH');
456: -- ELSIF ( Lang_Code_List(i) = 'D' ) THEN
457: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'GERMAN');
458: -- ELSIF ( Lang_Code_List(i) = 'F' ) THEN
459: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'FRENCH');
453: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'ENGLISH');
454: -- ELSIF ( Lang_Code_List(i) = 'NL' ) THEN
455: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'DUTCH');
456: -- ELSIF ( Lang_Code_List(i) = 'D' ) THEN
457: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'GERMAN');
458: -- ELSIF ( Lang_Code_List(i) = 'F' ) THEN
459: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'FRENCH');
460: -- ELSIF ( Lang_Code_List(i) = 'I' ) THEN
461: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'ITALIAN');
455: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'DUTCH');
456: -- ELSIF ( Lang_Code_List(i) = 'D' ) THEN
457: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'GERMAN');
458: -- ELSIF ( Lang_Code_List(i) = 'F' ) THEN
459: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'FRENCH');
460: -- ELSIF ( Lang_Code_List(i) = 'I' ) THEN
461: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'ITALIAN');
462: -- ELSIF ( Lang_Code_List(i) IN ('E', 'ESA') ) THEN
463: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'SPANISH');
457: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'GERMAN');
458: -- ELSIF ( Lang_Code_List(i) = 'F' ) THEN
459: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'FRENCH');
460: -- ELSIF ( Lang_Code_List(i) = 'I' ) THEN
461: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'ITALIAN');
462: -- ELSIF ( Lang_Code_List(i) IN ('E', 'ESA') ) THEN
463: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'SPANISH');
464: -- END IF;
465: --END IF;
459: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'FRENCH');
460: -- ELSIF ( Lang_Code_List(i) = 'I' ) THEN
461: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'ITALIAN');
462: -- ELSIF ( Lang_Code_List(i) IN ('E', 'ESA') ) THEN
463: -- ad_ctx_ddl.Set_Attribute (Lexer_Name, 'INDEX_STEMS', 'SPANISH');
464: -- END IF;
465: --END IF;
466:
467: -- Language-specific attribute values for BASIC_LEXER preference object
466:
467: -- Language-specific attribute values for BASIC_LEXER preference object
468:
469: IF ( Lang_Code_List(i) = 'NL' ) THEN
470: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'DUTCH');
471:
472: ELSIF ( Lang_Code_List(i) = 'D' ) THEN
473: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'GERMAN');
474: -- Basic lexer in 8.1.7 allows the MIXED_CASE to be FALSE when COMPOSITE is set.
469: IF ( Lang_Code_List(i) = 'NL' ) THEN
470: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'DUTCH');
471:
472: ELSIF ( Lang_Code_List(i) = 'D' ) THEN
473: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'GERMAN');
474: -- Basic lexer in 8.1.7 allows the MIXED_CASE to be FALSE when COMPOSITE is set.
475: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MIXED_CASE', 'NO');
476: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'GERMAN');
477:
471:
472: ELSIF ( Lang_Code_List(i) = 'D' ) THEN
473: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'GERMAN');
474: -- Basic lexer in 8.1.7 allows the MIXED_CASE to be FALSE when COMPOSITE is set.
475: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MIXED_CASE', 'NO');
476: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'GERMAN');
477:
478: ELSIF ( Lang_Code_List(i) = 'DK' ) THEN
479: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'DANISH');
472: ELSIF ( Lang_Code_List(i) = 'D' ) THEN
473: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'COMPOSITE', 'GERMAN');
474: -- Basic lexer in 8.1.7 allows the MIXED_CASE to be FALSE when COMPOSITE is set.
475: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MIXED_CASE', 'NO');
476: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'GERMAN');
477:
478: ELSIF ( Lang_Code_List(i) = 'DK' ) THEN
479: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'DANISH');
480:
475: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'MIXED_CASE', 'NO');
476: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'GERMAN');
477:
478: ELSIF ( Lang_Code_List(i) = 'DK' ) THEN
479: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'DANISH');
480:
481: ELSIF ( Lang_Code_List(i) = 'S' ) THEN
482: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'SWEDISH');
483:
478: ELSIF ( Lang_Code_List(i) = 'DK' ) THEN
479: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'DANISH');
480:
481: ELSIF ( Lang_Code_List(i) = 'S' ) THEN
482: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'SWEDISH');
483:
484: ELSIF ( Lang_Code_List(i) = 'N' ) THEN
485: -- Both Norwegian and Danish use the same special characters that are
486: -- rendered alternatively as "aa", "ae", and "oe".
483:
484: ELSIF ( Lang_Code_List(i) = 'N' ) THEN
485: -- Both Norwegian and Danish use the same special characters that are
486: -- rendered alternatively as "aa", "ae", and "oe".
487: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'DANISH');
488:
489: ELSIF ( Lang_Code_List(i) = 'F' ) THEN
490: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'BASE_LETTER', 'YES');
491:
486: -- rendered alternatively as "aa", "ae", and "oe".
487: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'DANISH');
488:
489: ELSIF ( Lang_Code_List(i) = 'F' ) THEN
490: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'BASE_LETTER', 'YES');
491:
492: ELSE
493: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'NONE');
494:
489: ELSIF ( Lang_Code_List(i) = 'F' ) THEN
490: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'BASE_LETTER', 'YES');
491:
492: ELSE
493: ad_ctx_ddl.Set_Attribute (Lexer_Name, 'ALTERNATE_SPELLING', 'NONE');
494:
495: END IF;
496: END IF;
497:
502: ----------------------------------
503:
504: Log_Line (l_api_name || ': creating MULTI_LEXER preference ...');
505:
506: ad_ctx_ddl.Create_Preference (g_Pref_Owner || '.ENG_CHANGE_MULTI_LEXER', 'MULTI_LEXER');
507:
508: FOR i IN Lang_Code_List.FIRST .. Lang_Code_List.LAST
509: LOOP
510: Lexer_Name := g_Pref_Owner || '.ENG_CHANGE_LEXER_' || Lang_Code_List(i);
515: -- when adding the sub lexers:
516:
517: IF ( Lang_Code_List(i) = 'US' ) THEN
518: -- US English lexer to handle everything else.
519: ad_ctx_ddl.Add_Sub_Lexer ( g_Pref_Owner || '.ENG_CHANGE_MULTI_LEXER', 'DEFAULT'
520: , g_Pref_Owner || '.ENG_CHANGE_LEXER_US' );
521: ELSE
522: ad_ctx_ddl.Add_Sub_Lexer
523: ( lexer_name => g_Pref_Owner || '.ENG_CHANGE_MULTI_LEXER'
518: -- US English lexer to handle everything else.
519: ad_ctx_ddl.Add_Sub_Lexer ( g_Pref_Owner || '.ENG_CHANGE_MULTI_LEXER', 'DEFAULT'
520: , g_Pref_Owner || '.ENG_CHANGE_LEXER_US' );
521: ELSE
522: ad_ctx_ddl.Add_Sub_Lexer
523: ( lexer_name => g_Pref_Owner || '.ENG_CHANGE_MULTI_LEXER'
524: , language => Lang_Code_List(i)
525: , sub_lexer => Lexer_Name
526: --, alt_value => Lang_ISO_List(i)